<*>动态sql
Oracle中的动态sql可以通过本地动态sql命令执行,也可以通过DBMS_SQL程序包来执行。
语法:
execute immediate 动态sql语句字符串
[using 绑定输入参数变量<参数值>]
<*>错误处理
>预定义异常
pl/sql支持的预定义异常:
异常 说明
ACCESS_INTO_NULL 在未初始化对象时出现
CASE_NOTE_FOUND 在case语句中的选项与用户输入的数据不匹配是出现
COLLECTION_IS_NULL 在给尚未初始化的表或数组赋值时出现
CURSOR_ALREADY_OPEN 在用户试图打开已经打开的游标是出现,在重先打开游标前必须先将其关闭
DUP_VAL_ON_INDEX 在用户试图将重复的值存储在使用唯一索引的数据库列中时出现。
INVALID_CURSOR 在执行非法的游标运算是出现。
INVALIE_NUMBER 在将字符串转换为数字时出现。
LOGIN_DENIED 在输入用户名或密码无效时出现
NO_DATA_FOUND 在表中不存在请求的行是出现。
STORAGE_ERROR 在内存损坏或pl/sql耗尽内存时出现。
TOO_MANY_ROWS 在执行select into语句后返回多行时出现。
VALUE_ERROR 在产生大小限制错误时出现。
ZERO_DIVIDE 以零做除数时出现。
使用异常的语法:
exception 异常名称 then
执行异常处理语句....
>用户自定义异常
语法:
声明: 自定义异常名称 EXCEPTION;
使用raise语句显示引发:raise 自定义异常名称
处理: exception 自定义异常名称 then
执行异常处理语句....
>引发应用程序错误
过程RAISE_APPLICATION_ERROR用于创建用户定义的错误信息。
语法:
RAISE_APPLICATION_ERROR(error_number,error_message)
其中:
error_number:指定的异常编号,必须在-20000和-20999之间的负整数。
error_message:异常指定的消息文本。长度可答2048字节,错误消息是与error_number表示关联的文本。
十一.游标管理
游标是构建在pl/sql中,用来查询数据,获取记录集合的指针。
<*>静态游标
静态游标是在编译时知道其select语句的游标。
>隐式游标
Oracle预定义了一个sql的隐式游标,通过检查隐式游标的属性可以获取与最近执行的sql语句相关的信息。
隐式游标的属性:
.. %found:在dml语句影响一行或多行时,%found属性在返回true。
.. %notfound:与%found的作用正好相反,如果没有影响任何行,则返回true。
.. %rowcount:返回dml语句影响的行数,如果没有影响行则返回0。
.. %isopen:返回游标是否已经打开的值。在执行sql语句之后,Oracle自动关闭sql游标,所以隐式游标的%isopen属性始终为false。
>显示游标
显示游标是由用户显示声明的游标。根据在游标中定义的查询,查询返回的行集合可以包含零行或多行,这些行称为活动集。游标将指向活动集中的当前行。
显示游标的标准操作过程:
1.声明游标
2.打开游标
3.从游标中获取记录
4.关闭游标
显示游标在declare部分的声明语法:
cursor cursor_name [(parameter[,parameter..])]
[return return_type] is select_statement;
其中:
cursor_name:是游标的名称。
parameter:用于为游标指定输入参数。
return_type:定义游标提取的行的类型。
select_statement:指定游标的查询语句。
在声明游标后可以用下列语句控制游标:
open:打开游标。
fetch: 从游标中提取行。
close: 关闭游标。
显示游标同样有隐式游标的属性并起相同。
使用显示游标删除或更改:
如果处理过程中需要删除或更新行,在定义游标时必须使用select...for update语句,而在执行delete或update时使用where current of 字句指定游标的当前行。 a
**提示:select语句必须只包括一个表,而且delete和update语句只有在打开游标并提取特定行之后才能使用。
本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360654,如需转载请自行联系原作者
本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360654,如需转载请自行联系原作者