spool d:/deletetb.sql;
select 'delete ' || table_name || ' where to_char(col,'||'''yyyy'''||')='||'''2007'''||';'
from user_tables
where table_name in (select 'HS_' || lpad(rownum, '2', '0')
from dual
connect by rownum < 100);
spool off;
==================================================================================
--类似如下
PHP code:
begin
for x in (select * from user_objects where object_name like 'HS_%') loop
execute immediate 'delete from '||x.object_name||' where substr(apl_date,0,4)=''2007''';
end loop;
end;
where object_name like 'HS_%' => where object_name like 'HS/_%' escape '/'
===============================================================================
测试后版本:
select 'select * from '||table_name||' where yearmonth=''201001'';'
from dba_tables where table_Name like 'DW_CU_B_%';
=============================================================================
本文介绍了一种在Oracle数据库中通过动态SQL批量删除指定前缀表中特定年份数据的方法,并提供了PL/SQL示例代码。
&spm=1001.2101.3001.5002&articleId=5332718&d=1&t=3&u=928137d79ef34553a59d750cfc42d86f)
1045

被折叠的 条评论
为什么被折叠?



