我得到絆倒使用動態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;
我從execute immediate sql_stmt獲得的錯誤;行是: ORA-00900:無效SQL語句 ORA-06512:在行8