0

単純な数値に基づいてストアド プロシージャを動的に実行しようとしているので、これを行う別のプロシージャを作成しましたが、質問のタイトルにエラーが表示され続けます。これが私のプロシージャです。

PROCEDURE P_EXEC_REG(p_Register IN VARCHAR2, p_LineBuff IN VARCHAR2, p_User IN VARCHAR2) IS  

  l_Procedure   VARCHAR2(50);
  l_Sentence    VARCHAR2(500);

BEGIN    
  l_Procedure := 'P_REG_' || TRIM(p_Register);
  l_Sentence := 'BEGIN CTS.PK_INTEGRATE_MANIFESTO.' || l_Procedure || '(:A, :B); END;';
  EXECUTE IMMEDIATE l_Sentence
  USING IN p_LineBuff, p_User;    
END;

私たちは何百もの手順を持っているので、if ステートメントでそれを行うのは面倒です。誰かがこれについて私を助けてくれることを願っています。

PROCEDURE P_LOAD_FILE(p_Linebuff IN VARCHAR2, p_User IN VARCHAR2) IS

l_Register        VARCHAR2(3);

BEGIN
    BEGIN
       SELECT SUBSTR(p_Linebuff,1,3)
       INTO   l_Register
       FROM   DUAL;                 
    EXCEPTION
         WHEN NO_DATA_FOUND THEN
            --p_result := false;
            NULL;
    END;
    CTS.PK_INTEGRATE_MANIFESTO.P_EXEC_REG(l_Register, p_Linebuff, p_User);

    EXCEPTION
      WHEN OTHERS THEN
      NULL;         
END;
4

1 に答える 1