戚权20201207
知识点
动态执行 SQL 语句
在PL/SQL程序开发中,可以使用DML语句和事务控制语句,但是还有很多语句(比如DDL语句)不能直接在PL/SQL中执行。这些语句可以使用动态SQL来实现。
如果动态语句是SELECT语句,可以把查询的结果保存到INTO后面的变量中。如果动态语句中存在参数,USING为语句中的参数传值
动态SQL中的参数格式是:[:参数名],参数在运行时需要使用USING传值。
PL/SQL 的异常处理
异常发生时,进入异常处理部分,具体的异常与若干个WHEN子句中指明的异常名匹配,匹配成功就进入对应的异常处理部分,如果对应不成功,则进入OTHERS进行处理
异常定义:在PL/SQL块的声明部分采用EXCEPTION关键字声明异常,定义方法与定义变量相同。比如声明一个myexception异常方法是:
myexception EXCEPTION;
异常引发:在程序可执行区域,使用RAISE关键字进行引发。比如引发myexception方法是:
RAISE myexception;
引发应用程序异常
在Oracle开发中,遇到的系统异常都有对应的异常码,在应用系统开发中,用户自定义的异常也可以指定一个异常码和异常信息,Oracle系统为用户预留了自定义异常码,其范围介于-20000到-20999之间的负整数
引发应用程序异常的语法是:RAISE_APPLICATION_ERROR(异常码,异常信息)
子程序
过程是执行一系列PL/SQL操作的子程序,从根本上讲,过程就是命名的PL/SQL程序库,他可以拥有参数,过程编译后存储在数据库中,然后由应用程序或者其他的PL/SQL块调用
调用程序是通过参数向过程传值的,过程中的形参接收调用者传递过来的参数,并且在过程中可以使用。默认情况下,过程中的参数在过程中只能使用,不能对参数重新赋值。过程中参数传递共有三种模式:分别是IN、OUT和IN OUT
触发器
数据库触发器是一个与表相关联的、存储的 PL/SQL 程序。每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle 自动地执行触发器中定义的语句序列。
CREATE [or REPLACE] TRIGGER 触发器名
{BEFORE | AFTER}
{DELETE | INSERT | UPDATE [OF 列名]}
ON 表名
[FOR EACH ROW [WHEN(条件) ] ]
begin
-- PLSQL 块
End 触发器名;
总结
今天完成了oracle的学习,收获非常的大,但是以前的很多的忘记了,需要多补补
近期评论