При попытке запустить этот пакет я получил ошибку pl / sql. Как это решить, плз, помогите!
CREATE OR REPLACE PACKAGE pkg_ref_value
IS
ref_value orders.total_order%TYPE;
PROCEDURE proc_display_firstname( cust_id IN customer.customer_id%TYPE);
PROCEDURE proc_ref_value(orderId IN orders.order_id%TYPE);
END pkg_ref_value;
PROCEDURE proc_display_firstname( cust_id IN customer.customer_id%TYPE)
IS
cust_last_name VARCHAR2(20);
CURSOR c1(cust_id customer.customer_id%TYPE ) IS
SELECT UPPER(CONCAT(CONCAT(cust_first_name,' '),cust_last_name)) FROM customer WHERE
customer_id=cust_id;
BEGIN
OPEN c1(cust_id);
LOOP
FETCH c1 INTO cust_last_name;
EXIT
WHEN c1%NOTFOUND
DBMS_OUTPUT.PUT_LINE(cust_last_name);// this is the place I got error
END LOOP;
CLOSE c1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NO DATA FOUND' );
END proc_display_firstname;
PROCEDURE proc_ref_value(orderId IN orders.order_id%TYPE)
IS
or_status orders.order_id%TYPE;
total orders.total_order%TYPE;
v_order_id orders.order_id%TYPE :=orders_id;
CURSOR c2 (orderId orders.order_id%TYPE) IS
SELECT
CASE
WHEN order_status='refunded' THEN total_order*0.25
WHEN order_status='completed' THEN total_order* 0
WHEN order_status='cancelled' THEN total_order*0
END
FROM orders;
BEGIN
v_cust_last_name :=proc_display_firstname(v_order_id);
SELECT order_id,order_status, total_order INTO v_order_id,or_status,total
FROM orders
WHERE order_id = v_order_id;
OPEN c2(orderId);
LOOP
FETCH c2 INTO ref_value;
EXIT WHEN c2%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(ref_value);
END LOOP;
CLOSE c2;
DBMS_OUTPUT.PUT_LINE('cust name:'||v_cust_last_name||' Order Id'||v_order_id||'Order Status'||or_status||'Refund Value'||ref_value);
END proc_ref_value;
END pkg_ref_value;'