我只想删除所有以“ T%”开头的表。
该数据库是Netezza。
有谁知道SQL做到这一点?
问候,
使用目录视图,execute immediate
用nzplsql编写代码相当简单。但是请小心,call drop_like('%')
将很快破坏数据库。
create or replace procedure drop_like(varchar(128))
returns boolean
language nzplsql
as
begin_proc
declare
obj record;
expr alias for $1;
begin
for obj in select * from (
select 'TABLE' kind, tablename name from _v_table where tablename like upper(expr)
union all
select 'VIEW' kind, viewname name from _v_view where viewname like upper(expr)
union all
select 'SYNONYM' kind, synonym_name name from _v_synonym where synonym_name like upper(expr)
union all
select 'PROCEDURE' kind, proceduresignature name from _v_procedure where "PROCEDURE" like upper(expr)
) x
loop
execute immediate 'DROP '||obj.kind||' '||obj.name;
end loop;
end;
end_proc;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句