oracle :PL/SQL块、常用数据类型、条件和循环语句、异常的语句格式及注解

一. PL/SQL块

1.语句格式:

declare  变量赋值声明

begin

正常语句块(可镶嵌begin 语句块 end;)

exception  when 异常名 then 异常处理(可忽略)

 when others then 不满足以上异常时的处理

end;

2.dbms_output.put_line( );  --输出语句;

3.如果使用查询语句的值时,必须进行赋值:

select 字段值 into 变量,from 表名 where 条件;

4. 变量名数据类型 :=初始值;  --声明变量

5. 变量名constant 数据类型 :=初始值; --声明常量

6.变量名 数据类型 default  --默认值

7. var 变量名数据类型 :=初始值;

--全局变量,在当前操作窗口有效,一般用于测试,用 :变量名,调用全局变量;

8.print 全局变量名;  --查看当前变量的值

9. :=  --赋值;    ..  --范围取值,如:1..5,从1到5

1)PL/SQL 支持:SQL 数据操纵命令、游标控制命令、事务控制命令(commit,rollback)、SQL 函数、运算符和伪列。

2)编译→执行→储存编译好的SQL块;

3)set serveroutput on :设置环境变量为打开状态,从而使pl/sql程序能够在SQL操作台中输出结果         --以上为注释

二. 数据类型:

1、标量数据类型 :数字型,字符型, 日期型和布尔型

2、属性数据类型 :%type:复制某个字段的类型;

%rowtype:复制表的全部类型;

3、自定义数据类型:type 变量名 record (可有多个数据类型);

4、binary_integer:介于-231 和 231 之间的整数。

三. 条件控制和循环控制:

注:if嵌套if时,外层if条件满足时执行内层if,如果外层if不满足时,执行elsif或者else;

注:exit when 条件;  --当满足条件时,跳出循环

1. if 条件 then 语句块 elsif 条件 then 语句块 else 语句块end if;

2. case 字段  when 条件 then 语句块  else 语句块  end case;

3. loop 循环体 end loop   --无限循环

4. where 条件loop 循环体end loop --循环

5. for 变量名 in 循环次数loop 循环体end loop

注:in 从1..10,in reverse 从10..1;

6. goto 标签名1; <<定义标签名1>> 语句;--跳转到标签1

   注:可以跟 goto 标签2 <<标签2>> null;相结合使用

7.execute immedlate:=sql语句 using 向sql语句传递参数。

                                      --动态执行语句

returning 列 into  :名;

returning into 列参数名  -- 用于接参数;

、注:动态执行语句主要针对DDL语句的,DDL的语句不能直接在sql语句块来使用,参数值的变量可以做成输入框。

四. 异常:

1. 预定义异常

Ø no_data_found --用于数据空指针异常时使用。

Ø  dup_val_no_index --用于向唯一索引列中输入了重复值时使用。

Ø invalid_number --用于处理字符串转换为数字时使用。

Ø too_many_rows  --用于处理查询中返回多于 1 条记录。

Ø zero_divide --用于处理用 0 作为除数时的数据。

Ø cursor_already_open --用于处理打开一个已经打开的游标。

Ø invalid_cursor  --用于处理进行非法游标操作时使用。

2.自定义异常

declare中声明异常:异常名  exception; →begin语句块中引发:raise 异常名;→exception中捕捉处理异常:when 异常名 then 异常处理内容。

3. 引发应用程序异常(引发系统异常)

ralse_application_error(异常码,异常内容信息)

--用于自定义异常处理报错的框框。

异常码:-20000至-20999;

4. 异常码绑定

pragma exception_init(异常名,异常码);--在声明中进行绑定

注:在程序中进行引发应用程序异常时,必须进行异常码的绑定。

猜你喜欢

转载自blog.csdn.net/qq_39870734/article/details/79216629