このコードを実行しようとすると、出力が表示されず、理由がわかりません。SQLプロシージャ - 何も印刷されません
この手順では、得意先IDを取り込み、指定された得意先が行ったすべての指図 を表示します。それは注文の詳細 を保存するためにカーソルを使用し、次に詳細を印刷します。
SET SERVEROUTPUT ON;
create or replace PROCEDURE procedure_CustOrderHistory (cust_id IN number) AS
CURSOR c_CustOrderHistory IS
Select o.order_id, o.order_totalCost, o.order_date, cu.customer_firstName,
cu.customer_lastName, s.staff_firstName, s.staff_lastName, os.order_status
FROM orders o, customer cu, staff s, order_status os
where o.customer_id=cu.customer_id AND s.staff_id = o.staff_id AND
os.order_statusID = o.order_statusID and cu.customer_id = cust_id ;
BEGIN
FOR r_order IN c_CustOrderHistory
LOOP
dbms_output.put_line('Order ID: '||r_order.order_id || ', Order Total Cost: ' || r_order.order_totalCost || 'BHD, Order Date: ' || r_order.order_date || ', Customer Name: ' || r_order.customer_firstName || ' ' || r_order.customer_lastName|| ', Customer Name: ' || r_order.customer_firstName || ' ' || r_order.customer_lastName || ', Order Status: '|| r_order.order_status);
END LOOP;
END;
この匿名ブロックは、前の手順をテストします。ユーザーに のIDを尋ね、顧客IDを渡してプロシージャーを呼び出します。
SET SERVEROUTPUT ON;
DECLARE
v_custid number := &customerid;
BEGIN
procedure_CustOrderHistory(v_custid);
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('Customer ID not found.');
WHEN OTHERS THEN
dbms_output.put_line('Error! ' || SQLERRM);
END;
ようこそスタックオーバーフロー。 [ask]を読んで[mcve]を作成してください。これについては、WHERE句に対応するデータがなく、エラーが発生しない場合、このクエリは何も出力しません。 – CodeCaster
あなたはこれをどこで実行していますか?例えば。 SQL * Plusでは、両方のコードの後にスラッシュが必要です – Boneist
Tom Kyteが言っているように、それはあなたのメカニックに行き、 "私の車は始まりません。 – sandman