PL/SQLでファンクション名に変数を使用するには
PL/SQLでファンクションの呼出を行いたいと思っています。
そこでファンクション名を変数で指定したいと思っているのですがうまくいきません。
ファンクション
FUNCTION Check
(
pi_Syori_No IN NUMBER, -- 処理No.
po_Function_Name OUT VARCHAR2 -- ファンクション名
) RETURN BOOLEAN
IS
TYPE Test_List IS VARRAY(100) OF VARCHAR2(10) NOT NULL;
TYPE FcNameList IS VARRAY(100) OF VARCHAR2(10) NOT NULL;
MmsCheckList Test_List := Test_List('○','×');
FcNameCheckList FcNameList := FcNameList('Check','Check');
BEGIN
IF MmsCheckList(pi_Syori_No) = '○' THEN
po_Function_Name :=FcNameCheckList(pi_Syori_No);
ELSE
po_Function_Name :=NULL;
END IF;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
RETURN FALSE;
END Check;
メイン
CREATE OR REPLACE PROCEDURE Test
(
po_Out OUT VARCHAR2
)
IS
Modoriti BOOLEAN :=TRUE;
F_Neme VARCHAR2(2000) :=NULL;
BEGIN
IF Check(1,F_Neme) = TRUE THEN
Modoriti := F_Neme(2,F_Neme);
END IF;
EXCEPTION
WHEN OTHERS THEN
po_Out := 'エラー';
END Test;
この状態で実行すると下記のエラーが出てしまいます。
[PLS-00222: この有効範囲内に、名前'F_Neme'の関数は存在しません。]
ファンクション名に変数を使うのは無理なのでしょうか?
よろしくお願いいたします。