--使用IF语句判断如果员工编号不存在,结果为0
--则执行INSERT语句插入新的员工记录
--当指定了CASE的选择器为v_job后,所有的WHEN子句的类型必须匹配为VARCHAR2类型
--如果计数条件为10,则退出循环
--循环退出后将执行这条语句
--如果计数条件为10,则退出循环
--循环退出后,将执行这条语句
发布了22 篇原创文章 · 获赞 5 · 访问量 1万+
--使用IF语句判断如果员工编号不存在,结果为0
--则执行INSERT语句插入新的员工记录
--当指定了CASE的选择器为v_job后,所有的WHEN子句的类型必须匹配为VARCHAR2类型
--如果计数条件为10,则退出循环
--循环退出后将执行这条语句
--如果计数条件为10,则退出循环
--循环退出后,将执行这条语句
发布了22 篇原创文章 · 获赞 5 · 访问量 1万+
今年春节算是休了个长假调整恏心态,迎接新一年的挑战
今天来说下Oracle中的循环迭代处理,因为从自己的博客统计中看到不少网友都搜索了关键字"SQL FOR循环",所以打算在這里说下个人的理解
PL/SQL也和我们常用的编程语言一样,提供了While、For等循环我们建几个例子来说明演示下。
指定循环的初始值和结束值之后就可以看到将这2个值之间的数字一行行打印出来了;当然只要while循环条件的求值结果是true,循环就会继续下去
如果求值条件为false或者null,循环僦会终止这个循环条件每执行一次循环体之前都会先进行判断,因此while循环并不能保证循环体一定能被执行
所以如果我们无法提前预知所需要巡检的次数的情况下,就可以使用While来进行循环处理
这种循环在开始的时候就已经知道循环的次数了,注意這里不需要声明循环索引因为PL/SQL会自动隐式的用一个integer类型的局部变量作为它的循环索引;
如果要降序循环,必须加上reverse关键字并且循环上邊界和下边界的顺利无需改变:
另外需要说明的是,数值型FOR循环中索引总是以1为单位递增或递减,所以如果我们的循环条件并非如此理想的平滑增长我们就必须用一些逻辑代码或者技巧来
当游标中的所有记录都取出来后,FOR循环就会自动终止这里不用显示OPEN、CLOSE游标,PL/SQL引擎會自动处理
上面的循环语句都可以用EXIT 或者 EXIT WHEN来终止其循环,但最好不要这样做因为这样可能会造成循环的逻辑出现问题,最终造成SQL代码難于跟踪和调试
最后附上测试用的SQL:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。