17,382
社区成员




SQL> select table_name from user_tables where table_name like 'T_';
TABLE_NAME
------------------------------
TB
T5
T4
T2
T1
declare
s varchar2(100);
begin
for x in (select table_name from user_tables where table_name like 'T_') loop
s := 'drop table :1';
dbms_output.put_line(s);
execute immediate s using x.table_name;
end loop;
end;
drop table :1
declare
*
ERROR at line 1:
ORA-00903: invalid table name
ORA-06512: at line 7
1 declare
2 s varchar2(100);
3 begin
4 for x in (select table_name from user_tables where table_name like 'T_') loop
5 s := 'drop table :1';
6 dbms_output.put_line(x.table_name);
7 --execute immediate s using x.table_name;
8 end loop;
9* end;
10 /
T1
PL/SQL procedure successfully completed.
SQL>
declare
s varchar2(100);
begin
for x in (select table_name from user_tables where table_name like 'T_') loop
s := 'drop table ' || x.table_name;
dbms_output.put_line(s);
execute immediate s;
end loop;
end;