2011-07-05 14 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

はこれを試してみてください:PL/SQLの単一引用符で

declare c varchar2(100); 

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

は、文字列を使用する必要があります。最初の値は、文字列プロシージャ内ではない数であることを

次いで

チェック:

+0

こんにちはマキシム、それは動作しません。 –

+0

まだ同じエラーが発生していますか? –

+0

いいえ、一重引用符を使用している場合、PLS-00306:「GETQUOTE」を呼び出す際に、数またはタイプの引数が間違っています。 –

1

は、単一引用符を使用します。 あなたはまた、引数として( '001')to_numberを試してみることがあります

関連する問題