1

TOAD を使用して Oracle プロシージャを作成しています。execute ステートメントを使用してプロシージャを実行しました。しかし、私は結果を得ることができません。その代わりに、エラーのみが発生しています。TOAD で手順を実行する方法を教えてください。私はヒキガエルとオラクルが初めてです。

オラクルでの手続き

create or replace procedure pro_dndtesting( phone number)is 
begin
select  FLD_PHONENUMBERS from smsdnd_tbl where FLD_PHONENUMBERS=phone;
end ;
/

実行手順は以下の通り

exec procedure pro_dndtesting(9865015695)

error

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

1 に答える 1

6

明確にするために、「Oracle Toad」などはありません。Oracle は RDBMS ですが、TOAD は Oracle データベースのクライアントです。

SELECT に INTO 句を指定しないため、作成したプロシージャはコンパイルされません (プレーン SQL とは対照的に、PL/SQL は SELECT の結果の「ターゲット」を必要とするため)。これを試して:

create or replace procedure pro_dndtesting( phone number)is 
  l_value smsdnd_tbl.fld_phonenumbers%type;
begin
  select  FLD_PHONENUMBERS 
    into l_value 
    from smsdnd_tbl 
   where FLD_PHONENUMBERS=phone;
end ;

あなたが得ているエラーについては:

プロシージャーの定義と呼び出しに同じスキーマ (=ユーザー) を使用しましたか?

次のような匿名のPL/SQLブロックから試しましたか

begin
  pro_dndtesting(9865015695);
end;
于 2012-09-27T07:02:35.710 に答える