【发布时间】:2014-07-02 16:08:39
【问题描述】:
我想删除我的数据库中在其数据文件名称中具有特定模式的所有表空间。
以下查询为我提供了数据文件名遵循此模式的所有表空间:
SELECT TABLESPACE_NAME FROM DBA_DATA_FILES WHERE FILE_NAME LIKE '/vol1/u06%' ;
我想删除上述查询返回的所有表空间。但我无法弄清楚外部查询应该是怎样的,因为DROP TABLESPACE 不采用WHERE 子句。
因此,外部查询应类似于 DROP TABLESPACE tablespace_name.....,其中 tablespace_name 与上述模式匹配查询一一对应。
(我正在使用 Oracle)
谢谢!
【问题讨论】:
-
您可以使用立即执行语句制作一个 PLsql 块。
-
你能给我举一些这种用法的例子吗?
-
在这个问题上,stackoverflow.com/questions/6180710/… 正是您要问的。
-
您只需将其更改为 FOR 语句,而不是使用计数的测试。
-
但是如何将变量表空间名称传递给第二个查询?名称可以从第一个查询中获得。这是关键问题..