【文件属性】:
文件名称:PL/SQL与数据库交互-the design and analysis of algorithms
文件大小:4.17MB
文件格式:PDF
更新时间:2021-06-09 10:52:12
达梦,DM7
12.6 PL/SQL与数据库交互
没有名字的 PL/SQL 程序块被称为匿名块,它仅存放在缓冲区中,只能在当前 DISQL
环境中执行。如果希望 PL/SQL块能随时被调用执行,并且能被数据库用户共享,就需要创
建存储程序。存储程序是有名字的 PL/SQL块,它在创建时经过了编译与优化,被存放在数
据库中,任何用户只要有适合的权限,就可以根据它的名字进行多次调用。存储程序在调用
时无需要再进行编译,因此能以很快的速度执行,但如果需要对存储程序进行修改,不能直
接修改它的源代码,只能执行 CREATE命令重新创建。
存储程序可以在 SQL语句、应用程序以及其它 PL/SQL块中被调用,在第一次被调用时,
存储程序的代码被装载到系统全局区的共享池中,再次调用时即可直接从共享池中取出代码
执行。存储程序的形式包括:存储过程,存储函数、触发器、包等,它为用户提供了一种高
效率的编程手段,成为现代数据库系统的重要特征。
12.6.1 存储过程
用户在自己的模式中创建存储过程,需要具有 CREATE PROCEDURE数据库权限,如果
要在其它用户的模式中创建存储过程,则需要具有 CREATE ANY PROCEDURE数据库权限。
创建存储过程的语法为:
CREATE [OR REPLACE] PROCEDURE
过程名 [WITH ENCRYPTION] [(参数 1,参数 2,…)]
AS
声明部分
BEGIN
可执行部分
EXCEPTION
异常处理部分
END;
其中 OR REPLACE 选项的作用是当同名的存储过程存在时,首先将其删除,再创建新
的存储过程,前提条件是当前用户具有删除原存储过程的权限,如果没有删除权限,则创建
失败。存储过程可以带有参数,这样在调用存储过程时就需指定相应的实际参数,如果没有
参数,过程名后面的圆括号和参数列表就可以省略了。参数定义的格式如下:
参数名 [参数传递模式] 数据类型 [:= 默认值]
参数名 [参数传递模式] 数据类型 [DEFAULT默认值]