Я создал процедуру следующимкак вызвать процедуру PLSQL
create or replace procedure "GETCUSTNAMEZZz"
(cust_identifier1 IN NVARCHAR2(10))
is
begin
DBMS_OUTPUT.PUT_LINE (FNAME || ' ' || LNAME FROM customer WHERE cust_id=cust_identifier1)
end;
Я тогда попробуйте вызова процедуры
BEGIN
GETCUSTNAMEZZz('C2') ;
END;
Это SQL дает мне ошибку, что идентификатор «GETCUSTNAMEZZZ» должен быть объявлен ORA -06550: строка 3, столбец 5: PL/SQL: заявление игнорируется «
Это точная процедура, которую я создал, и параметр правильный.
Как именно я объявляю идентификатор?
Заранее спасибо.
Вы должны иметь возможность вызвать его, как показано на рисунке, но не забудьте ввести 'SET SERVEROUTPUT ON SIZE 1000' (или любого другого размера) перед выполнением. Проблема в том, что ваш proc не существует, потому что он не компилируется.Я вижу ряд проблем: (1) используйте 'NVARCHAR2' вместо' NVARCHAR2 (10) 'для параметра, (2) вам нужно запросить' FNAME' и 'LNAME' в переменные, прежде чем вы сможете их показать (3) строка кода, начинающаяся с 'DBMS_OUTPUT.PUT_LINE', должна содержать точку с запятой в конце. Если вы создаете proc и получаете «созданный с ошибками», введите «показать ошибки», чтобы увидеть ошибки. –
Если у меня это правильно, даже если оракул говорит, что созданная процедура не может скомпилироваться при вызове ?? –
Правильно - если он был создан с ошибками, Oracle все равно позволит вам его вызвать; он будет перекомпилировать, но перекомпиляция в вашем случае не удастся. См. Ответ @DaveCosta ниже. У вашей проблемы все еще есть проблемы, но вы можете сэкономить массу горя, не используя двойные кавычки - они уже отправлены вам на дорогостоящую поездку. –