2012年1月4日 星期三(oracle读书笔记,PL/sql流程控制语句)

1.       PL/SQL流程控制语句之条件控制

If 条件表达式 then

           语句段

End if;

 

If  条件表达式  then

           语句段1

Else 

           语句段2(可嵌套if……then语句)

End if;

 

If  条件表达式1  then

           语句段1

Elseif  条件表达式2  then

           语句段2

Elseif  条件表达式3  then

           语句段3

Else  语句段4

End if

2.       疑问:在文件中设置相关的环境变量,例如设置日期格式nls_date_format为’yyyy-mm-dd’,设置pagesize为30,设置linesize为120。

begin

dbms_output.put_line(sysdate);

alter session set nls_date_format = 'yyyy-mm-dd';

dbms_output.put_line(sysdate);

show pagesize linesize;

set pagesize 30 linesize 120;

show pagesize linesize;

end;

这样设置之后,发现提示好多问题,比如alter使用方法不对等等。这个文件关于环境变量的设置语句应该怎么写呢?

3.       在SQL*PLUS中使用pl*sql语言的时候,需要进行初始环境设置,比如设置pagesize、linesize、serveroutput、nls_data_format等等

 

需要在下面的路径下

D:\oracle\product\10.2.0\db_1\sqlplus\admin

的glogin.sql文件中进行修改设置:

 

Set pagesize 30

Set linesize 120

Set serveroutput on

但是会话的修改不能在glogin.sql文件中进行修改,这个需要单独设置一个文件进行修改会话操作。比如设置一个文件,其中的会话修改语句如下

Alter session set nls_date_format = ‘yyyy-mm-dd’;

4.       PL/sql流程控制语句条件控制:case  when语句

Case

           When  条件表达式1   then

                    语句段1

           When  条件表达式2   then

                    语句段2

           Else

                    语句段n

End case;

 

或者

Case  条件表达式

           When  条件表达式结果1   then

                    语句段1

           When  条件表达式结果2   then

                    语句段2

           Else 

                    语句段n

End case;

5.       PL/sql流程控制语句循环控制:loop……end loop;

<<循环标签>>

Loop

           语句段

End loop<<循环标签>>

         注:loop循环语句自身没有循环条件测试,即程序一旦进入循环体,只能使用exit语句来结束循环。

         Exit循环体语句语法格式:

         Exit<<循环标签>>  注:通常需要和条件语句配合使用

         Exit<<循环标签>> when 条件表达式   注:只有当条件表达式为true时,才结束循环。

6.        PL/sql流程控制语句循环控制:while  loop  endloop

<<循环标签>>

While 条件表达式 loop

           语句段

End loop循环标签

 

7.       PL/sql流程控制语句循环控制:for… loop… end loop

<<循环标签>>

For 循环变量 in [reverse] 初始表达式…终止表达式 loop

           语句段

End loop 循环标签

注:不使用reverse则将初始表达式赋值给循环变量,如果使用reverse则将终值表达式赋值给循环变量。

注:循环变量自动加减1,进入下一次循环。直到循环条件为false时结束循环。

注:循环变量可以不在声明部分进行声明,而直接在for循环语句中进行使用,但是系统默认该循环变量的数据类型为整数。

注:当存在与循环变量相同的用户变量的时候,则需要给循环变量添加限定词,例如循环标签和点号。

8.       PL/sql循环嵌套

9.       PL/sql流程控制语句顺序控制:goto语句

Goto 标签

注:通常用在从一个PL/SQL块中跳转到异常处理语句的前面。Goto语句的目的地必须与goto语句在同一块或更高层次中,即标签必须在goto语句的作用域中,并且通常需要和条件语句配合使用,以免进入死循环。

SQL> get f:\oracle\testgoto.sql;

  1  declare

  2     v_i number := 0;

  3     v_s number := 0;

  4  begin

  5     <<label_1>>

  6     v_i := v_i + 1;

  7     if v_i <= 100 then

  8             v_s := v_s + v_i;

  9             goto label_1;

 10     end if;

 11     dbms_output.put_line(v_s);

 12* end;

10.   PL/sql流程控制语句顺序控制:null语句,这是一个可执行语句,但它是不执行任何操作的空语句或站位语句,即它什么操作也不做就将控制交给下一个语句。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值