欢迎来到天天文库
浏览记录
ID:22975273
大小:65.75 KB
页数:25页
时间:2018-11-02
《db2存储过程快速入门》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1.1SQL过程的结构命名规则:1、清洗过程名称命名:PROC_业务主题_目标表(PROC_JY_KJYRLJB交易主题的卡交易日类聚表)2、函数名称命名:PROC_业务主题_函数名(PROC_JY_GETYWZL交易主题取得卡业务种类函数)3、变量命名:VAR_变量描述(VAR_YWZL业务种类变量)4、游标命名:CUR_游标描述(CUR_KJYB对卡交易表进行游标处理)语法:CREATEPROCEDURE过程名称(参数列表)DYNAMICRESULTSETS结果集数量是否允许SQLLANGUAGESQLBEGINSQL过
2、程体END范例“资产负债.sql”中第1行:CreateProcedureadmin.BalanceSheetDayly定义了过程名称参数列表为OutProcStatevarchar(100)其定义SQL过程从客户应用获取,或返回客户应用的0个或多个参数,参数列表使用逗号侵害各个参数参数类型有三种:l IN 从客户应用检索值。其不能够在SQL过程体中修改l OUT 向客户应用返回值l INOUT 从客户应用检索
3、值,并返回值 省略了结果集数量的定义,default为0。即表示不返回结果集。省略了是否允许SQL的说明。其值指出了存储过程是否会使用SQL语句,如果使用,其类型如何:l NOSQL 不能够执行任何SQL语句l COTAINSSQL 可以执行不会读取SQL数据,也不会修改SQL数据的SQL语句l READSSQLDATA 可以包含不会修改SQL数据的SQL语句l MODIFIESSQLDATA
4、 可以执行任何SQL语句,除了不能够在存储过程中支持的语句以外。第3~7行,为注释,标明此为SQL过程,编写、最后修改时间。注释为“--”开始的行。第8行和最后一行199共同标识出SQL过程体过程体存储过程的逻辑内容,包括变量声明、条件控制、流控制语句、以及通过SQL语句处理数据的过程。另例:CREATEPROCEDUREbbgs_to_testinfo(INvar0INTEGER,outretINTEGER,outret_strvarchar(5),OUTerrorLabelCHAR(32)) SP
5、ECIFICbbgs_to_testinfoRESULTSETS1LANGUAGESQL此定义为创建名为bbgs_to_testinfo的存储过程。它有4个参数:第一个IN参数是INTEGER类型,第一个OUT参数是INTEGER类型,第二个OUT参数是VARCHAR(5)类型,第三个OUT参数是CHAR(32)类型。指定的别名为bbgs_to_testinfo,将返回一个结果集。 1.2 SQL过程体1.2.1 声明、设置变量第9~61行。必须在SQL过程体的第一部分中声明变量。必须指定惟一的标
6、识符,声明SQL数据类型、并且可以先把指定变量的初始值。变量声明的语法如下:DECLARE标识符SQL数据类型[DEFAULT默认值] 1、SQLCODE、SQLSTATE变量 13~14行。用于在SQL过程中处理错误和排错问题。它们的值代表了SQL过程体中最后使用的SQL过程体中最后使用的SQL语句的返回值。 2、游标申明37~49行。declarecurAssetcursorwithholdfor 3、条件处理器50~61行。当SQL语句返回超过00000的SQLSTATE值时,会产生一个条件,表示出现了错误、数据没有找
7、到或者警告。条件处理器可以决定SQL过程将如何响应一个或多个已定义的条件或预定义条件组。其语法如下:DECALRE数据类型HANDLERFOR条件[,…]其有三种处理类型:l CONTINUE 处理器操作完成后,继续执行产生这个条件的语句之后的下一条语句。l EXIT 处理器操作完成后,SQL过程将终止,并将控制返回给调用者。l UNDO 处理器操作执行之前,DB2将回滚SQL过程中执行的SQL操作。完成后,SQL过程将终止,并将控制返回给调
8、用者。其预定义了3个类的条件:l NOTFOUND 标识导致SQLCODE值为+100或SQLSTATE值为02000的条件。一般在使用SELECT语句时出现。l SQLEXCEPTION 标识导致SQLCODE值为负
此文档下载收益归作者所有