删除所有表sql developer

Ema*_*ayi 15 oracle drop-table oracle-sqldeveloper

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

我怎么能放下这张桌子?

T.S*_*.S. 20

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

但我会建议这 - 在SQL工具中做

  select 'drop table ' || table_name || ';' from user_tables where table_name like 'TBL_%'
Run Code Online (Sandbox Code Playgroud)

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

但是你不能只在一个命令中删除多个表.检查此链接是否有与drop table相关的其他选项http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9003.htm


小智 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;
Run Code Online (Sandbox Code Playgroud)

  • 这会遭到否决,因为用户“特别要求”仅以“TBL_”开头的表 - 这将删除所有表! (2认同)