删除所有表sql developer

时间:2013-08-03 06:41:12

标签: oracle oracle-sqldeveloper drop-table

我的表名称以“TBL_ *”开头,但我不能通过单个命令删除所有名称。

我怎么能放弃这张桌子?

2 个答案:

答案 0 :(得分:20)

您可以编写一个脚本,特别是循环,在其中从user_tables中选择Table_name并迭代此循环,并使用“execute immediate”命令删除它们。

但我建议这样做 - 在sql工具中做

  select 'drop table ' || table_name || ';' from user_tables where table_name like 'TBL_%'

然后复制此查询的输出并粘贴到您的sql编辑器中,然后执行。 请记住,如果sql +是您的编辑器,如果您将它们全部粘贴,它们将开始执行。您可能希望先使用记事本进行查看和编辑。

但是你不能只在一个命令中删除多个表。 选中此链接,查看与drop table http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9003.htm

相关的其他选项

答案 1 :(得分:13)

BEGIN

  --Bye Tables!
  FOR i IN (SELECT ut.table_name
              FROM USER_TABLES ut) LOOP
    EXECUTE IMMEDIATE 'drop table '|| i.table_name ||' CASCADE CONSTRAINTS ';
  END LOOP;

END;