1

メイン ストアド プロシージャ内で ^ストアド プロシージャを実行しようとしています。しかし、それは機能していません。

エラー (11,9): PLS-00103: 次のいずれかを期待しているときに、シンボル "FN_UPD" が検出されました: := 。( @ % ; 続行するには、記号 ":=" が "FN_UPD" に置き換えられました。

コード:

create or replace
procedure FN_READ

is
   cursor C_1 is select distinct(COLUMN1) from TB_SOURCE;
   cursor C_2 is select distinct(COLUMN2) from TB_SOURCE;
   cursor C_3 is select distinct(COLUMN3) from TB_SOURCE;
BEGIN

    for f in C_1
    LOOP
   EXEC FN_UPD('A', 'A');

    end LOOP;


    for f in C_2
    LOOP
   EXEC PROCEDURE FN_UPD(f.COLUMN2, 'M')
    end LOOP;

    for f in C_3
    LOOP
    EXEC FN_UPD(f.COLUMN3, 'O')

    end LOOP;

EXCEPTION
WHEN OTHERS THEN
   raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR-    '||SQLERRM);
END;
4

2 に答える 2

2

EXEC(同じことが にも当てはまりますEXEC PROCEDURE) は PL/SQL では機能しません。プロシージャ名を直接使用してください。

BEGIN
    FN_UPD('A', 'A');
END;
/
于 2013-11-06T02:21:52.323 に答える