Вызов Oracle PL / SQL PLS-00201: должен быть объявлен идентификатор «001» - PullRequest
2 голосов
/ 05 июля 2011

Я пытаюсь вызвать скрипт PL / SQL со следующим заголовком:

PL / SQL:

CREATE OR REPLACE PROCEDURE GETQUOTE(i_QUOTEID IN HR.QUOTEID,
                                     o_QUOTE OUT HR.QUOTE)

Выполнить команду:

DECLARE c VARCHAR2(100);

BEGIN

  HR.GETQUOTE("001", c);

END;
/

Ошибка:

declare
c varchar2(100);
begin
HR.GETQUOTE("001", c);
end;

ORA-06550: line 4, column 29:
PLS-00201: identifier '001' must be declared
ORA-06550: line 4, column 1:
PL/SQL: Statement ignored

Ответы [ 3 ]

1 голос
/ 05 июля 2011

используйте одинарные кавычки:

тогда

проверьте, что первое значение является строкой, а не числом внутри процедуры. Вы также можете попробовать to_number ('001') в качестве аргумента

1 голос
/ 05 июля 2011

Вы используете неправильные типы цитат.Если вы хотите, чтобы 001 был строковым литералом, вам нужно использовать одинарные кавычки.

Попробуйте это:

SELECT '001' FROM dual;

SELECT "001" FROM dual;
0 голосов
/ 05 июля 2011

Попробуйте:

declare c varchar2(100);

begin    
  hr.getquote('001', c);    
end;    
/

В pl / sql для строк должны использоваться одинарные кавычки.

...