Я набрал следующий код на отдельных страницах, там указано неправильное имя процедуры. При вводе вместе в одном рабочем пространстве в SQL Developer он говорит, что выполнение завершено с предупреждением. Кажется, что нет никакого вывода вообще.
Это упражнение колледжа, чтобы получить несколько значений из нескольких таблиц, используя одно значение, введенное пользователем - в данном случае 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;
Процедура выполнена успешно, но я не могу найти ошибку в основной функции. Что вы думаете не так?
Даже когда я выполняю следующее, я получаю функцию успешно выполненной, а когда я выполняю основную функцию, я выполняюсь с предупреждением, я не понимаю, почему!
функция:
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;