別のページに次のコードを入力しましたが、プロシージャ名が無効です。 SQL Developerの同じ作業領域に一緒に入力すると、実行が警告付きで完了したことが示されます。出力は全くないようです。警告付きでPL/SQLの実行が完了しましたか?
ユーザーが入力した1つの値(この場合はono
)を使用して、いくつかのテーブルからいくつかの値を取得するのは、大学の課題です。
ここでは、注文番号(ono
)を使用して、書籍、数量オーダー、およびカスタム名のタイトルを取得する必要があります。
これは私のコードです:
create or replace procedure proc2 (ono in number
, cname out varchar, book out varchar, qty out number) is
temp number;
begin
select custid into temp from ordr where orderno = ono;
select custname into cname from customer where custid = temp;
select isbn,qtystock into temp,qty from order_list where orderno = ono;
select title into book from books where isbn = temp;
end proc2;
と私のメインの呼び出し機能:
set serveroutput on
declare
cname varchar(7);
book varchar(7);
ono number;
qty number;
begin
ono := &ono; -- I even tried explicitly giving a value didn't work
proc2(ono, cname, book, qty);
dbms_output.put_line('customer name: '||cname||'book title :'||book||'quantity ordered :'||qty);
end;
手順が正常に実行されましたが、私は、main関数に間違いを見つけるように見えることはできません。何が間違っていると思いますか?
私は以下の関数を実行しても正常に実行され、main関数を実行すると警告付きで実行されますが、なぜわかりません!
機能:
create or replace function totfun(ip in number) return number is
t number(5);
t1 number(5);
t2 number(5);
begin
select isbn,qtystock into t,t1 from order_list where orderno=ip;
select price into t2 from books where isbn=t;
return t1*t2;
end totfun;
主な機能:マニュアルから
set serveroutput on;
declare
ip number;
begin
ip:=&orderno;
dbms_output.put_line(totfun(ip));
end;
使用 'ショーerrors'。また、複数の 'SELECT'ステートメントを読む必要があります。私が知る限り、テーブルに「JOIN」するだけで、同じ情報を得ることができます。 –
それは私がそれを試してみましょう良い考えです;) – LoveMeow