Я получаю сбой с использованием динамических sql и котировок. Когда я dbms_output sql_stmt, он выдает действительный/рабочий код. Как должна быть написана строка sql_stmt: =, чтобы я мог ее динамически выполнить? Я пробовал использовать: 1, используя синтаксис связывания переменных, но не повезло.динамический sql с кавычками и выполнить немедленный
Точка этого кода предназначена для сбора статистики для подмножества таблиц.
set serveroutput on
--create this test table for working example.
--create table test3 as select table_name from user_tables where rownum <= 5;
declare
sql_stmt varchar2(500);
begin
for rec in (select table_name from test3)
loop
sql_stmt := 'exec dbms_stats.gather_table_stats (''SCOTT'',''' || rec.table_name || ''')';
dbms_output.put_line(sql_stmt);
execute immediate sql_stmt; -- <---Error is here---
end loop;
end;
Ошибки, которые я получаю от выполнения непосредственного sql_stmt; строка: ORA-00900: неверный оператор SQL ORA-06512: строка 8