复杂sql语句和存储过程.ppt
文本预览下载声明
oracle if then end if; if then else End if; if then elsif then end if; case语句 Sql编程 例子: declare @szbz int set @szbz=3 if @szbz=1 select szbz=1 else if @szbz=2 select szbz=2 else select szbz=3 Sql编程 set serveroutput on declare szbz int; begin szbz:=3; if szbz=1 then dbms_output.put_line(szbz=1); elsif szbz=2 then dbms_output.put_line(szbz=2); else dbms_output.put_line(szbz=3); end if; end; / Sql编程 case语句 case nwhen 1 then Action1; when 2 then Action2; when 3 then Action3; else ActionOther;end case; Case --CASE 表达式 when n = 1 then Action1;when n = 2 then Action2;when n = 3 then Action3;when ( n 3 and n 8 ) then Action4;else ActionOther;end case; Sql编程 CASE_NOT_FOUND 异常 ...p:=0; q:=0; r:=0; case when p = 1 then Action1; when r = 2 then Action2; when q 1 then Action3; end case; exception when case_not_found then Dbms_Output.Put_Line ( Trapped:case_not_found );... Sql编程 例子 declare i int; begin i:=2; case i when 0 then dbms_output.put_line(i=0); when 1 then dbms_output.put_line(i=1); else dbms_output.put_line(i=2); end case; end; / Sql编程 循环结构 sql while 语句 declare @count int set @count = 0 while(@count 10) begin set @count = @count + 1 print @count end 在循环中常用的语句有break和continue, break为跳出while,而continue为跳出当前循环,进入下一循环。 有时候也用到return和goto语句 Oracle PL/SQL EXIT 关键字等同。Oracle 没有 CONTINUE 关键字 Sql编程 ORACLE loop if … then exit; end loop; loop exit when …; end loop; while … loop end loop; for 变量 in 下界…上界 loop end loop; Sql编程 游标 定义 属性 打开 提取 关闭 参数化游标 游标变量 Sql编程 游标定义 sql DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSOR FOR select_statement [FOR {READ ONLY | UPDATE [OF column_name [,...n]]}] INSENSITIVE对基本表的修改并不影响游标提取的数据,默认可修改 SCROLL表明所有的提取操作(如FIRST、 LAST、 PRIOR、 NEXT、 RELATIVE (+ -)、 ABSOLUTE(+ -))都可用,如果不使用该保留字,那么只能进行NEXT 提取操作 Sql编程 oracle cursor 游标名 is select …; 属性 %FOUND: 判断当前游标是否指向有效的一条行记录. 是则返回TRUE, 否则返回FALSE %NOTFOUND: 与%FOUND 恰好相反. %ISOPEN: 判断游标是否打开, 打开则返回TRUE, 否则返回FALSE. %ROWC
显示全部