存储过程语法

1、存储过程的概念
存储过程是具有以下特征的程序:
(1)用CREATE PROCEDURE语句注册;
(2)包含一个或多个SQL语句和一些用编程语言编写的
操作或逻辑处理;
(3)存储在数据库中且在DB2服务器上运行;
(4)可以由正在使用SQL的应用程序使用CALL语句来调用;
(5)允许应用程序分两部分运行:在客户机上运行应用
程序,在服务器上运行存储过程。

存储过程能够帮助提高应用程序性能并减少数
据库存取流量。
存储过程还可以帮助集中业务逻辑。



2、存储过程的类型

     存储过程的类型包括两种:
          1.外部存储过程
          2.SQL存储过程



3、SQL存储过程的创建与执行

创建存储过程的语法:

CREATE PROCEDURE procedure_name
({[IN|OUT|INOUT] parameter_name datatype} [,…n])
[SPECIFIC specific_name]
[DYNAMIC RESULT SETS [0 | integer]]
[MODIFIES SQL DATA | CONTAINS SQL | READS SQL DATA]
[NOT DETERMINISTIC | DETERMINISTIC][CALLED ON NULL INPUT]
[INHERIT SPECIAL REGISTERS]
[OLD SAVEPOINT LEVEL | NEW SAVEPOINT LEVEL]
[LANGUAGE SQL][EXTERNAL ACTION | NO EXTERNAL ACTION]
[PARAMETER CCSID ASCII | UNICODE]
SQL_procedure_body

SQL_procedure_body ::=
[label_name:]BEGIN[ATOMIC | NOT ATOMIC]
[local_variable_declaration][cursor_declaration]
[condition_declaration][handler_declaration]
<SQL_routine_statement | dynamic_compound_statement>
END [label_name]

SQL存储过程的创建与执行

        使用CALL语句前需要连接至相应的数据库。要使用CALL语句,输入存储过程名,加上任何IN或INOUT参数,并输入“?”作为每个OUT参数的占位符。

存储过程传递参数的规则:
(1)变量和参数必须严格匹配;
(2)所有的参数都必须有值(包括占位符“?”);
(3)重载存储过程的区分和参数的匹配取决于参数的数目。

应用临时表的存储过程

临时表一般在以下情况下使用:

(1)临时表用于存储程序运行中的临时数据。
(2)临时表可以用于存储在一个程序中需要返回多次的结果集。
(3)临时表也可以用于让SQL访问非关系型数据库。



4、存储过程的重载

DB2支持存储过程的重载,这些存储过程可以有相同的存储过
程名和不同个数的参数,只要给它们指定不同的“特定名称”
即可。



5、存储过程的查询、修改和删除

1. 查询
查询用户存储过程语法格式为:
SELECT * FROM SYSCAT.PROCEDURES
[WHERE PROCSCHEMA=’ SQL存储过程的模式名(必须大写)’
[AND PROCNAME=’ SQL存储过程的名称(必须大写)’]
[AND SPECIFICNAME=’ SQL存储过程的特定名称(必须大写)’]]

2.修改
DB2存储过程一旦创建就不能够修改,只能删除。如果
需要修改存储过程,必须先删除原来的存储过程,然后再
创建新的存储过程。

3. 删除
删除存储过程的语法格式为:
DROP PROCEDURE procedure_name#

DROP PROCEDURE procedure_name()#

DROP PROCEDURE procedure_name (data_type[,…n])#

DROP SPECIFIC PROCEDURE procedure_specific_name #

猜你喜欢

转载自blog.csdn.net/m0_37392721/article/details/81906058