【发布时间】:2018-10-01 04:38:40
【问题描述】:
我需要输入产品代码作为参数,以检索所述产品和其他信息。我需要比我提供的更多的信息,我已经开始小规模尝试及早调试任何错误,但我不明白为什么下面的代码不起作用。我正在使用 SQLPlus,任何帮助将不胜感激。
CREATE OR REPLACE PROCEDURE product_info(PRODUCT_NO IN CHAR)
AS
v_product PRODUCTS%ROWTYPE;
v_suborders SUBORDERS.ORDER_NO%TYPE;
CURSOR cur_products IS
SELECT p.name, p.prod_id, p.description, p.unit_price, s.order_no
FROM PRODUCTS P, SUBORDERS S
WHERE p.prod_id = product_no;
BEGIN
OPEN cur_products;
LOOP
FETCH cur_products INTO v_product, v_suborders;
DBMS_OUTPUT.PUT_LINE('Product Code: ' || v_product.prod_id
|| ' Name: ' || v_product.name
|| ' Description: ' || v_product.description
|| ' Price: ' || v_product.unit_price
|| ' Order: ' || v_suborders);
END LOOP;
EXCEPTION
WHEN no_data_found THEN
DBMS_OUTPUT.PUT_LINE ('Product number does not exist');
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ('Operation failed ' || 'SQLCODE: ' || SQLCODE);
ROLLBACK;
END;
/
【问题讨论】:
标签: sql plsql oracle11g sqlplus database-cursor