1

最近、自分のプロジェクトの1つでOracleデータベースに移動しました。データベースから複数の行を選択するためのストアドプロシージャを作成しました。以下は私の手順です

create Or replace
PROCEDURE TEST(p_cursor OUT SYS_REFCURSOR) AS

BEGIN
open p_cursor FOR select * from branch_info;
END TEST;

この手順を実行すると、次のエラーが発生しました。

      *
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'SAURAV.TEST' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

私はそれを検索し、ここで同様の質問を見つけましたが、エラーラインと理由が異なります。

誰かがこれを解決するのを手伝ってください。

編集:テキストによるミスプリントテスト

4

1 に答える 1

1

問題はキーワードテストにあります

CREATE OR REPLACE PROCEDURE test (p_cursor OUT sys_refcursor)
AS
BEGIN
    OPEN p_cursor FOR
        SELECT  *
          FROM  branch_info;
END test;

によって実行します

variable rc refcursor;

exec test( :rc );

print rc;

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

他の名前に変更する

CREATE OR REPLACE PROCEDURE test2 (p_cursor OUT sys_refcursor)
AS
BEGIN
    OPEN p_cursor FOR
        SELECT  *
          FROM  branch_info;
END test2 ;

として実行

variable rc refcursor;

exec test2 ( :rc );

print rc;

PL/SQL procedure successfully completed.

SQLPlusから

SQL> variable usercur refcursor;
SQL> DECLARE
  2  BEGIN
  3  test2(:usercur);
  4  end;
  5  /

PL/SQL procedure successfully completed.

SQL> print usercur;
于 2013-03-21T10:28:48.210 に答える