2

我正在尝试使用以下标头调用 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
4

3 回答 3

1

You are using the wrong types of quotes. If you want 001 to be string literal, you need to use single quotes.

Try this:

SELECT '001' FROM dual;

SELECT "001" FROM dual;
于 2011-07-05T02:31:34.967 回答
1

使用单引号:

然后

检查第一个值是否是过程中的字符串而不是数字。你也可以尝试 to_number('001') 作为参数

于 2011-07-05T03:01:47.160 回答
0

Try this :

declare c varchar2(100);

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

In pl/sql single quotes must be used for strings.

于 2011-07-05T02:33:37.743 回答