[英]How can i execute an CREATE Oracle SQL statement in a SELECT?
這是SQL:
select 'create table XX_' || replace(replace(trim(table_id),'-','_'),'%','X') || '_LOOKUP as select * from prn_tcodes where trim(table_id) = ''' || trim(table_id) || ''';'
from prn_tcodes
group by table_id;
我想要執行的結果SQL語句,有沒有辦法?
我正在使用Oracle 10g
謝謝,,,
作為假脫機的替代方法,您可以將其作為匿名PL / SQL塊運行(未經測試!)
DECLARE
cursor all_codes
select 'create table XX_' ||
replace(replace(trim(table_id),'-','_'),'%','X') ||
'_LOOKUP as select * from prn_tcodes where trim(table_id) = ''' ||
trim(table_id) as sql_stmt
from prn_tcodes
group by table_id;
rec all_codes%ROWTYPE;
BEGIN
FOR rec IN get_objects LOOP
BEGIN
EXECUTE IMMEDIATE rec.sql_stmt;
END LOOP;
END;
/
(請注意,生成的語句不包含結尾;
更多)
將上述腳本假脫機到一個文件,然后執行該文件。
spool myoutput.sql
-- Your SQL here
spool off;
@myoutput;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.