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

間違った種類の引用符を使用しています。001文字列リテラルにしたい場合は、一重引用符を使用する必要があります。

これを試して:

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

これを試して :

declare c varchar2(100);

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

pl/sql では、文字列に一重引用符を使用する必要があります。

于 2011-07-05T02:33:37.743 に答える