在这个示例中,我们将在DB2中创建一个名为DEMO1201的存储过程. 该存储过程的输入参数IN_NAME和IN_CREDITCARD,表示用户的姓名和身份证号. 该存储过程的作用是根据身份证号来新建用户或者更改用户信息,代码如下: CREATE OR REPLACE PROCEDURE DEMO1201 ( IN IN_NAME VARCHAR(50), IN IN_CREDITCARD CHARACTER(18) ) BEGIN DECLARE V_RESULT VARCHAR(50) DE
存储过程代码如下: CREATE PROCEDURE proc_sum2(IN n INT,OUT sum INT,OUT j INT) BEGIN DECLARE i INT; ; ; ; WHILE i<=n do SET sum=sum+i; ; END WHILE; END; 取sum值命令行执行如下: db2 "CALL BSC.PROC_SUM2 (, ?,?)" |awk 'NR==5{print $4}' 取j的值命令行执行如下: db2 "CALL B
大家在迁移数据库时,存储过程一般也要迁移过去,但一般有两个问题: 1. 非常多存储过程有先后关系(存储过程调用存储过程),假设存储过程数量少,还能手动操作.假设量大,那真是要疯了. 2. 存储过程过大(行数过多),导致异常 这边有个方法,也许能够解决问题. 一. 导出存储过程 EXPORT TO G:/PROCUDURE/procudure.del OF del MODIFIED BY LOBSINFILE SELECT 'SET CURRENT SCHEMA '||rtrim(procsche
一.导出存储过程 EXPORT TO D:/PROCUDURE/procudure.del OF del MODIFIED BY LOBSINFILE SELECT 'SET CURRENT SCHEMA '||rtrim(procschema)||'@'||chr(10)||'SET CURRENT PATH = SYSIBM,SYSFUN,SYSPROC,'||rtrim(procschema)||' @'||chr(10)||text||chr(10)||'@'||chr(10)FROM
CREATE OR REPLACE PROCEDURE "FCT"."PROC_FCT_DSB_SERIES"(IN ACCOUNTING_DATE DATE) ------------------------------------------------------------------------------- LANGUAGE SQL SPECIFIC PROC_FCT_DSB_SERIES --------------------------------
修改之前的脚本 select count(*) from dbdk.dtdkg010 A left join DBDK.DTDKG070 D ON D.PAY_NO = A.PAY_NO LEFT JOIN CXLFM.DTFMA000_UNIT F ON F.DIV_NO = D.PLN_DIV1 AND F.DIV_NO2=D.PLN_DIV2 LEFT JOIN DBDK.DTDKH900 E ON E.COST_CD = D.COST_CD LEFT JOIN DBDK.DTDKG071
接下来项目在技能可能偏向数据库方面,补习下. 学习写第一个db2在存储过程,记录下. ---- stored procedures code CREATE OR REPLACE PROCEDURE "EFTP"."STPR_A" ()) LANGUAGE SQL --SPECIFIC SQL181102050119141 BEGIN ); --SELECT CURRENT USER INTO v FROM SYSIBM.SYSDUMMY1; --SELECT cou
一.动态执行SQL PREPARE S1 FROM 'delete from test'; EXECUTE S1; 二.使用游标 DECLARE V_CURSOR CURSOR FOR SELECT DELETESQL,INSERTSQL FROM FJDC.V_I_DG_DM_ZY_WL_ZBHZ_ATTR T; OPEN V_CURSOR; FETCH V_CURSOR INTO V_DELETESQL,V_INSERTSQL; CLOSE V_CURSOR; 三.WHILE循环 WHILE
有时候一些复杂的业务逻辑将要通过存储过程的循环语句进行处理;以下列出2种DB2存储过程的循环语句,方便以后的查看并使用! 推荐第一种方式的使用,最大的优点就是比较直观;在需要操作很多字段的情况下,不需要定义太多的字段变量作为中间存储媒介. 一.FOR方式(FOR .. AS [游标名] CURSOR FOR [SELECT......]) BEGIN --语句块,必须要加上,否则会出错. FOR V AS MYCURSOR CURSOR FOR SELECT ID,NAME,AGE FROM P