Oracle中的Cursor vs FOR Loop

时间:2018-08-22 20:27:32

标签: oracle for-loop plsql cursor

所以我有一个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;
/

那样就可以了,但是我应该使用游标而不是将SELECT语句嵌入到FOR LOOP中吗?

FOR LOOP是查看整个表还是一次处理一行?

你们建议使用什么,为什么?

1 个答案:

答案 0 :(得分:2)

结果将是相同的。

尽管如此,您将消耗更多的精力,因为您必须输入更多的字符,因为您必须声明一个游标和游标变量,打开一个游标,开始循环,从中获取,并注意退出循环,关闭光标。

使用游标FOR循环(如您所做的那样)时,键入的内容要少得多,因为Oracle会为您执行很多操作。免费。

相关问题