伙計們,我有一個包含 300 多列的表,其中不需要以“OP_...”開頭的約 150 列。
是否可以撰寫一個查詢,例如,
Select * from TableA
drop columns start with OP_
在 Oracle SQL/PL/SQL 中?感謝您的評論..
uj5u.com熱心網友回復:
您可以嘗試作為一個陳述句運行。執行此選擇以生成更改表陳述句,然后執行:
select to_clob('alter tableA drop (') || to_clob(listagg(column_name,',') ||')')
from user_tab_columns
where table_name = 'TABLEA'
and column_name like '%OP_%'
如果你想作為單獨的陳述句來做,那么你可以像這樣執行一個 pl/sql 塊:
begin
for rec in (select 'alter tableA drop (' || column_name ||')' drop_stmt
from user_tab_columns
where table_name = 'TABLEA'
and column_name like '%OP_%') LOOP
execute immediate rec.drop_stmt
END LOOP;
END;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/369927.html
下一篇:如何將此條件添加到此查詢中?
