Oracle 中的游标与 FOR 循环
Cursor vs FOR Loop in Oracle
所以我有一个 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 循环中嵌入我的 SELECT 语句吗?
FOR 循环是查看整个 table 还是一次只处理一行?
你们建议使用什么?为什么?
结果是一样的。
不过,您会消耗更多能量,因为您必须输入更多字符,因为您必须声明一个游标和游标变量,打开一个游标,开始循环,从中获取,注意退出循环,关闭游标。
当您使用游标 FOR 循环(就像您所做的那样)时,输入的内容会少得多,因为 Oracle 会为您完成很多工作。免费。
所以我有一个 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 循环中嵌入我的 SELECT 语句吗?
FOR 循环是查看整个 table 还是一次只处理一行?
你们建议使用什么?为什么?
结果是一样的。
不过,您会消耗更多能量,因为您必须输入更多字符,因为您必须声明一个游标和游标变量,打开一个游标,开始循环,从中获取,注意退出循环,关闭游标。
当您使用游标 FOR 循环(就像您所做的那样)时,输入的内容会少得多,因为 Oracle 会为您完成很多工作。免费。