私は、パッケージP_NAMEからプロシージャを呼び出す必要がありますが、それは、これが唯一の問題である場合はPL/SQLエラー:識別子「name」は宣言されなければならない
DECLARE
V V_NAME;
V1 VARCHAR2(30);
v_sql VARCHAR2(4000);
BEGIN
SELECT PROCEDURE_NAME BULK COLLECT INTO V from ALL_PROCEDURES
where OBJECT_NAME='p_name';
FOR I IN 1..V.COUNT LOOP
name:='p_name';
v_sql:='begin'||name||'.'||V(I)||';'||'END;';
EXECUTE IMMEDIATE v_sql;
END LOOP;
END;
ここで 'name:= 'p_name'という変数を使用します。 v_sql:= 'begin' ||名前|| '。' || V(I)|| ';' || 'END;'; 'は宣言されていません。 – g00dy
また、 '' begin '|| name'は '' begin' || name'でなければなりません。パッケージオーナーと、他のフィルタを指定する必要があります。 'owner.object_name.procedure_name'は手続きであり、パラメータが必要です。私は固定バージョンを投稿しますが、このコードには多すぎる問題があります。 –