dbTalk Databases Forums  

PL/SQL

comp.database.oracle comp.database.oracle


Discuss PL/SQL in the comp.database.oracle forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
D.j
 
Posts: n/a

Default PL/SQL - 10-27-2004 , 10:49 AM






I am attempting to run this PL/SQL command and get this error:

Warning: Procedure created with compilation errors.

Here is the code

CREATE OR REPLACE PROCEDURE DISPLAY_CUSTOMER_INFO(P_CUSTOMER NUMBER) IS



V_CUSTREC CFUSTOMERS%RWTYPE;
V_SALES_REP VARCHAR2(25);
V_ORDERS_CNT NUMBER(6);
V_ORDERS_AMT NUMBER;

BEGIN

BEGIN
SELECT *
INTOV_CUSTREC
FROM CUSTOMERS
WHERE CUSTOMER_ID = P_CUSTOMER;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000, 'CUSTOMER DOES NOT EXIST');
END;

SELECT FIRST_NAME || '' || LAST_NAME
INTO V_SALES_REP
FROM EMPLOYEES
WHERE EMPLOYEE_ID = V_CUSTREC.SALES_REP_ID;

SELECT COUNT(*)
INTO V_ORDERS_CNT
FROM ORDERS
WHERE CUSTOMER_ID_ = P_CUSTOMER;

SELECT SUM(TOTAL_AMOUNT)
INTO V_ORDERS_AMT
FROM ORDER_LINES
WHERE ORDER_ID IN (SELECT ORDER_ID
FROM ORDERS
WHERE CUSTOMER_ID = P_CUSTOMER);

DBMS_OUTPUT.PUT_LINE('CUSTOMER NAME: ' ||
V_CUSTREC.FIRST_NAME||' '||
V_CUSTREC.LAST_NAME);
DBMS_OUTPUT.PUT_LINE('CUSTOMER PHONE: ' || V_CUSTREC.PHONE);
DBMS_OUTPUT.PUT_LINE('CUSTOMER STATUS: ' || V_CUSTREC.STATUS);
DBMS_OUTPUT.PUT_LINE('NUMBER OF ORDERS: ' || V_ORDERS_CNT);
DBMS_OUTPUT.PUT_LINE('ORDERS AMOUNT: ' || V_ORDERS_AMT);
END;


Thanks in advanced

D.j

Reply With Quote
  #2  
Old   
David
 
Posts: n/a

Default Re: PL/SQL - 04-08-2005 , 06:48 PM






Look at the declaration section, you have:
V_CUSTREC CFUSTOMERS%RWTYPE;

it should probably read as follows:

V_CUSTREC CUSTOMERS%ROWTYPE;

Good luck
dlf

---
D.j wrote:
Quote:
I am attempting to run this PL/SQL command and get this error:

Warning: Procedure created with compilation errors.

Here is the code

CREATE OR REPLACE PROCEDURE DISPLAY_CUSTOMER_INFO(P_CUSTOMER NUMBER) IS



V_CUSTREC CFUSTOMERS%RWTYPE;
V_SALES_REP VARCHAR2(25);
V_ORDERS_CNT NUMBER(6);
V_ORDERS_AMT NUMBER;

BEGIN

BEGIN
SELECT *
INTOV_CUSTREC
FROM CUSTOMERS
WHERE CUSTOMER_ID = P_CUSTOMER;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000, 'CUSTOMER DOES NOT EXIST');
END;

SELECT FIRST_NAME || '' || LAST_NAME
INTO V_SALES_REP
FROM EMPLOYEES
WHERE EMPLOYEE_ID = V_CUSTREC.SALES_REP_ID;

SELECT COUNT(*)
INTO V_ORDERS_CNT
FROM ORDERS
WHERE CUSTOMER_ID_ = P_CUSTOMER;

SELECT SUM(TOTAL_AMOUNT)
INTO V_ORDERS_AMT
FROM ORDER_LINES
WHERE ORDER_ID IN (SELECT ORDER_ID
FROM ORDERS
WHERE CUSTOMER_ID = P_CUSTOMER);

DBMS_OUTPUT.PUT_LINE('CUSTOMER NAME: ' ||
V_CUSTREC.FIRST_NAME||' '||
V_CUSTREC.LAST_NAME);
DBMS_OUTPUT.PUT_LINE('CUSTOMER PHONE: ' || V_CUSTREC.PHONE);
DBMS_OUTPUT.PUT_LINE('CUSTOMER STATUS: ' || V_CUSTREC.STATUS);
DBMS_OUTPUT.PUT_LINE('NUMBER OF ORDERS: ' || V_ORDERS_CNT);
DBMS_OUTPUT.PUT_LINE('ORDERS AMOUNT: ' || V_ORDERS_AMT);
END;


Thanks in advanced

D.j

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.