2011-07-05 42 views
2

我试图打电话与下面的头一个PL/SQL脚本:调用的Oracle PL/SQL PLS-00201:标识符 '001' 必须声明

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 

回答

1

您正在使用错误的引号类型。如果你想001是字符串文字,你需要使用单引号。

试试这个:

SELECT '001' FROM dual; 

SELECT "001" FROM dual; 
0

试试这个:

declare c varchar2(100); 

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

在PL/SQL单引号必须用于字符串。

+0

嗨马克西姆,它不起作用。 –

+0

你仍然得到相同的错误? –

+0

不,使用单引号时,我有一个PLS-00306:调用'GETQUOTE'时出现错误的参数或参数类型。 –

1

使用单引号:

然后

校验,所述第一值是一个字符串不是过程内的数。 你也可以尝试以号码('001')作为参数

相关问题