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