Oracle 尽量少用循环语句
2015-06-30 13:49
357 查看
-- Start
下面是一个使用循环语句删除表记录的例子。
在你的工作中,千万别写出上面的语句,否则应该毫不犹豫的给自己两个耳光,应该使用批处理的方式,如下:
或使用 TABLE 表达式,如下:
-- 更多参见:Oracle
SQL 优化精萃
-- 声明:转载请注明出处
-- Last edited on 2015-06-30
-- Created by ShangBo on 2015-06-30
-- End
下面是一个使用循环语句删除表记录的例子。
DECLARE TYPE NumList IS TABLE OF NUMBER; emps NumList := NumList(10, 30, 70); BEGIN FOR i IN emps.FIRST..emps.LAST LOOP DELETE FROM employees WHERE employee_id = emps(i); END LOOP; END;
在你的工作中,千万别写出上面的语句,否则应该毫不犹豫的给自己两个耳光,应该使用批处理的方式,如下:
DECLARE TYPE NumList IS TABLE OF NUMBER; emps NumList := NumList(10, 30, 70); BEGIN -- FORALL 语句批量执行下面的语句 FORALL i IN emps.FIRST..emps.LAST DELETE FROM employees WHERE employee_id = emps(i); END;
或使用 TABLE 表达式,如下:
CREATE OR REPLACE TYPE number_table AS TABLE OF NUMBER; DECLARE emps number_table := number_table(10, 30, 70); BEGIN DELETE FROM employees WHERE employee_id IN (SELECT COLUMN_VALUE FROM TABLE(emps)); END;
-- 更多参见:Oracle
SQL 优化精萃
-- 声明:转载请注明出处
-- Last edited on 2015-06-30
-- Created by ShangBo on 2015-06-30
-- End
相关文章推荐
- oracle分页查询
- oracle 表空间
- Oracle 函数
- Oracle数据完整性学习笔记
- ORACLE添加作业
- 用户登录验证
- Oracle 指定子程序 OUT 或 IN OUT 参数为引用传递
- Oracle关于控制文件的错误ORA-00202的处理
- oracle 错误处理
- oracle 卸载步骤
- oracle Instant Client install
- 有用的oracle语句
- 非常有用的 Oracle 查询语句
- OEL6.5 + oracle11gR2 RAC ASM磁盘识别的multipathd解决方案
- 查询oracle表的信息(表,字段,约束,索引)按列名+表名查询约束名称
- oracle 忘记密码、更改密码、解锁、默认密码、创建视图、恢复自带Emp表
- Oracle query that count connections by minute with start and end times provided
- ORACLE 如何查询被锁定表及如何解锁释放session
- 两个oracle数据库如何做数据交换
- oracle分组写法