Я пытаюсь запустить анонимный блок plsql с помощью execute immediate, и блок plsql содержит переменную bind, для которой значение является инструкцией sql select. Но, похоже, это не работает. Есть ли какое-либо решение для решения этой проблемы.
Например.
BEGIN
V_SQL:='SELECT emp_id FROM emp WHERE dept_id=10;
PLSQL_BLOCK:='DECLARE
type emp_type
IS
TABLE OF NUMBER;
emp_id emp_type;
BEGIN
EXECUTE IMMEDIATE :1 BULK COLLECT INTO emp_id;
END';
EXECUTE IMMEDIATE PLSQL_BLOCK USING V_SQL;
Plz попробуйте это.Надеюсь, это поможет.
Сначала необходимо объявить переменные, которые вы хотите использовать в блоке выполнения.
Попробовать это:
Если я хорошо понимаю, вам нужно запустить весь динамический блок PLSQL, используя в качестве SQL-запроса в качестве переменной привязки; если это так, вы можете попробовать этот способ: