【发布时间】:2018-08-22 20:27:32
【问题描述】:
所以我有一个 PLSQL 代码块,它将删除所有索引,如下面的代码块所示:
DECLARE
DRP_STMNT VARCHAR2(100) := '';
BEGIN
FOR I IN (SELECT INDEX_NAME FROM USER_INDEXES) LOOP
DRP_STMNT := 'DROP INDEX ' || I.INDEX_NAME;
EXECUTE IMMEDIATE DRP_STMNT;
END LOOP;
END;
/
这将完成这项工作,但我应该使用游标而不是在 FOR LOOP 中嵌入我的 SELECT 语句吗?
FOR LOOP 是查看整个表还是一次处理一行?
你们建议使用什么,为什么?
【问题讨论】:
-
这里不需要使用显式游标。
-
@APC 如果我想将其创建为存储过程,情况是否相同?
-
当然。为什么不呢?
-
每个选择是一个(隐式)游标。
标签: oracle for-loop plsql cursor