我的表名称以“TBL_ *”开头,但我不能通过单个命令删除所有名称。
我怎么能放弃这张桌子?
答案 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;