扩大
缩小

2013年4月30日

使用游标——参数游标

摘要: 参游标是指带有参数的游标。在定义了参数游标之后,当使用不同参数值多次打开游标时,可以生成不同的结果集。定义参数游标的语法如下:CURSOR cursor_name(parameter_name datetype) IS select_statement;注意,当定义参数游标时,游标参数只能指定数据类型,而不能指定长度。当定义参数游标时,一定要在游标子查询的where子句中引用该参数,否则就失去了定义参数游标的意义。例子: 显示特定部门所有雇员名:declarecursor emp_cursor(no number) isselect ename from emp where deptno=no 阅读全文

posted @ 2013-04-30 23:55 LinuxPanda 阅读(2240) 评论(0) 推荐(0) 编辑

使用游标——显式游标

摘要: 定义游标。CURSOR cursor_name IS select_statement;cursor_name 用于指定要定义的游标名称,select_statement用于指定游标所对应的select语句。打开游标。OPEN cursor_name;提取数据。FETCH cursor_name INTO variable1,variable2......;variablel用于指定接收游标数据的变量。注意,因为每条fetch into 语句只能提取单行数据,所以为了处理所有数据,必须使用循环语句。关闭游标。CLOSE cursor_name;%ISOPEN: 用于确定游标是否已经打开。如果游 阅读全文

posted @ 2013-04-30 23:40 LinuxPanda 阅读(622) 评论(0) 推荐(0) 编辑

使用控制结构——顺序控制语句——GOTO和NULL

摘要: PL/SQL 不仅提供了条件分支语句和循环控制语句,而且还提供了循环控制语句goto和null 。但与if,case,和loop语句不同,goto语句和null语句不是非常重要,一般情况下这两种语句不需要使用。goto语句用于跳转到特定处执行语句。注意,因为使用goto语句会增加程序的复杂度,而且使得应用程序可读性非常差,所以开发应用程序一般不建议使用goto语句。例子:declarei int:=1;begin loopinsert into temp values(i);if i=10 then goto end_loop;end if;i:=i+1;end loop;<<en 阅读全文

posted @ 2013-04-30 23:05 LinuxPanda 阅读(341) 评论(0) 推荐(0) 编辑

使用控制结构——循环语句——嵌套循环和标号

摘要: 循嵌套是指在一个循环语句之中嵌入另一个循环语句,而标号(label)则用于标记嵌套快活嵌套循环。通过在嵌套循环中使用标号,可以区分内层循环和外层循环,并且可以在内层循环中直接退出外层循环。在编写pl/sql块时,可以使用<<label_name>>定义标号。例子:declareresult int;begin<<outer>>for i in 1..100 loop<<inner>>for j in 1..100 loopresult:=i*j;exit outer when result=1000;exit when r 阅读全文

posted @ 2013-04-30 22:55 LinuxPanda 阅读(295) 评论(0) 推荐(0) 编辑

使用控制结构——循环语句——FOR循环

摘要: 当使用基本循环或是while循环式,需要定义循环控制变量,并且循环控制变量不仅可以使用number类型,也可以使用其他数据类型;而当使用for循环时,oracle会隐含定义循环控制变量。beginfor i in reverse 1..10 loopinsert into temp values(i);end loop;end;/ 阅读全文

posted @ 2013-04-30 22:36 LinuxPanda 阅读(324) 评论(0) 推荐(0) 编辑

使用控制结构——循环语句——WHILE循环

摘要: 基本循环至少要执行一次循环体语句,而对于while循环来说,只有条件为true时,才会执行循环体内的语句。while循环以while loop 开始,以end loop 结束,declarei int :=1;beginwhile i<=10 loopinsert into temp values(i);i:=i+1;end loop;end;/ 阅读全文

posted @ 2013-04-30 22:29 LinuxPanda 阅读(264) 评论(0) 推荐(0) 编辑

使用控制结构——循环语句——基本循环

摘要: 在pl/sql中最简单的循环语句时基本循环语句,这种循环语句以loop开始,以endloop结束,注意,当编写基本循环时,一定要包含exit 语句,否则pl/sql 快会陷入死循环;另外,当使用基本循环时,还应该定义循环控制变量,并且在循环体内修改循环控制变量的值。create table temp (cola int);declare i int :=1;beginloopinsert into temp values(i);exit when i=10;i:=i+1;end loop;end;/ 阅读全文

posted @ 2013-04-30 22:22 LinuxPanda 阅读(200) 评论(0) 推荐(0) 编辑

使用控制结构——条件分支语句——CASE语句

摘要: 当处理多重条件分支时,不仅可以使用if语句,而且可以使用CASE语句。因为使用CASE语句更加简洁,而且执行效率也更好,所以建议使用CASE 语句。注意: 为了避免CASE_NOT_FOUND 例外,在编写CASE语句时应该带有ELSE 子句。declare v_deptno emp.deptno%type;beginv_deptno:=&no;case v_deptnowhen 10 thenupdate emp set comm=100 where deptno=v_deptno;when 20 thenupdate emp set comm=80 where deptno=v_d 阅读全文

posted @ 2013-04-30 22:12 LinuxPanda 阅读(346) 评论(0) 推荐(0) 编辑

使用控制结构——条件分支语句——多重条件分支

摘要: 多重条件分支用于执行最复杂的条件分支操作。当使用多重条件分支时,如果满足第一个条件,则执行第一种操作;如果不满足第一个条件,则检查是否满足第二个条件,如果满足第二个,则执行第二种操作;依次类推。多重条件分支是使用if then elseif 语句来完成的。例子: 根据雇员岗位更新雇员工资:declare v_empno emp.empno%type;v_job emp.job%type;v_sal emp.sal%type;beginselect empno,job,sal into v_empno,v_job,v_sal from empwhere empno=&no;if v_jo 阅读全文

posted @ 2013-04-30 21:57 LinuxPanda 阅读(411) 评论(0) 推荐(0) 编辑

使用控制结构——条件分支语句——二重条件条件

摘要: 二重条件分支是根据条件选择两种可能性。当使用二重条件分支时,如果满足条件,则执行一种情况;如果不满足条件,则执行另外一种操作。二重条件分支是使用if else else 来完成的,例子 : 根据雇员号处处补助,为补助非0的雇员增加100元补助,其他雇员增加200元补助;declare v_empno emp.empno%type;v_comm emp.comm%type;beginselect empno,comm into v_empno,v_comm from emp where empno=&no;dbms_output.put_line('雇员原来补助工资: ' 阅读全文

posted @ 2013-04-30 21:36 LinuxPanda 阅读(261) 评论(0) 推荐(0) 编辑

使用控制结构——条件分支语句——简单条件

摘要: 简单条件判断时,如果条件为true 那么pl/sql执行器会执行then 后的操作;如果为false或是null,那么pl/sql执行器会直接退出条件分支语句。下面给个例子根据雇员名输出雇员工资,并为低于2000的雇员增加200元: declare v_sal emp.sal%type; v_eno emp.empno%type; begin select empno,sal into v_eno,v_sal from emp where lower(ename)=lower('&name'); dbms_output.put_line('雇员原工资: ' 阅读全文

posted @ 2013-04-30 21:16 LinuxPanda 阅读(258) 评论(0) 推荐(0) 编辑

导航