戚权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的学习,收获非常的大,但是以前的很多的忘记了,需要多补补

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1