当前位置:首页 » 存储配置 » db2怎么调用存储过程

db2怎么调用存储过程

发布时间: 2023-01-08 04:31:33

⑴ DB2 存储过程调用 存储过程

给你一个链接,自己学习吧。

个人用过几个月的DB2,觉得db2的存储过程 调试最麻烦了。

http://bbs.csdn.net/topics/110040013

⑵ 在C#NET中怎样调用db2存储过程

1、找开sql server 2005,创建表名为abc的表,表的设计如图。 2、给表中加入三行数据,如图。 3、创建一个名为“pro_abc”的存储过程,内容如图。 4、在程序中的配置文件,配置数据库链接字符串,如图。

⑶ DB2 DataStudio存储过程入门

建好后 看到如下界面,图中DDL部分是选择的存储过程模板

场景:
输入两个参数A和B,并求和
DDL
只需要按照模板,修改参数部分和主体部分即可

DDL的空白处,鼠标右键——》部署 或者 单击 部署 按钮

存储过程——》运行 或者 单击 运行 按钮 如图

⑷ db2存储过程

CREATE OR REPLACE PROCEDURE PROCEDURE_NAME(IN FILED FILE_TYPE|OUT FIELD FIELD_TYPE|INOUT FIELD_TYPE)

  BEGIN

   [DECLARE I INT DEFAULT 1;]

   [可以写循环:

    REPEAT 

    UNTIL (...)

    END REPEAT;

   ]

   ...

  END

  @

  CREATE OR REPLACE PROCEDURE INSERTDATA(

  IN COUNTS INT

  )  

  BEGIN

   DECLARE I INT DEFAULT 1;

   REPEAT

    insert into ESBTLOG(UUID, UUID_POS, MSG_ID, ESB_CODE, CLI_ID, CLI_ID_BOCS, SERV_ID, SERV_TRAN_CODE, SERV_TCODE, ESB_RET_CODE, ERR_MSG, TRACE_NO, TRAN_DATE, TRAN_TIME, TXN_STATUS, JOURNAL_NO, EXT_UUID, TXN_TOKEN, NODE_NAME, TRAN_BEGIN_TIME, TRAN_END_TIME, SP1_BEGIN_TIME, SP1_END_TIME, USER_BOCS, WKSTATION, RET_TRAN_DATE, RET_TRAN_TIME, RET_AC_DATE, RET_TRACE_NO, AP_TRACE_NO, BR_NO, TM_SMP)

    values('141114B0000R', '0-0-0-0-25', '', 'BOCI060460', '520', '14', '-', '-', '000000', '2020001003', 'Send To client error.QM:CAPAQ01 QUEUE:ESB.CAP.RES.LQ1', '530000U1KQUMT', '20180730', '095310', 'E', '-', '-', '-', 'ESB.QM2', '2018-12-11-09.51.16.398765', '2018-12-11-09.51.16.398765', '2018-12-11-09.51.16.398765', '2018-12-11-09.51.16.398765', '4980261', '994', '-', '-', '-', '-', '-', '51604', '2018-12-11-09.51.16.398765');

    SET I = I + 1;

   UNTIL (I > COUNTS)

   END REPEAT;

  END

  @

注意:写存储过程需要以一个符号结尾,此处用的是@符号

db2 "select * from SYSCAT.PROCEDURES where PROCNAME='INSERTDATA'"

    db2 "drop procere INSERTDATA2SIPTLOG(INT,VARCHAR())"

注意:要将参数带进去

    db2 -td@ -vf filename (该文件需以@符号结尾).

-td选项让命令行处理程序使用@作为语句终止字符;-v选项让命令处理程序将命令文本回显到标准输出;-f让命令行处理程序从指定文件读取命令输入

⑸ db2中存储过程调用存储过程的输出参数怎么写

db2 => CREATE PROCEDURE HelloWorld2 ( \
db2 (cont.) => IN vUserName <a href="https://www..com/s?wd=VARCHAR&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">VARCHAR</a>(10), \
db2 (cont.) => OUT vOutValue <a href="https://www..com/s?wd=VARCHAR&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-"target="_blank" class="-highlight">VARCHAR</a>(10), \
db2 (cont.) => INOUT vInOutValue <a href="https://www..com/s?wd=VARCHAR&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">VARCHAR</a>(10)) \
db2 (cont.) => LANGUAGE SQL \
db2 (cont.) => BEGIN \
db2 (cont.) => INSERT INTO test_helloworld \
db2 (cont.) => VALUES('Hello ' || vUserName || vInOutValue); \
db2 (cont.) => SET vOutValue = 'A'; \
db2 (cont.) => SET vInOutValue = 'B'; \
db2 (cont.) => <a href="https://www..com/s?wd=END&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">END</a>
DB20000I SQL 命令成功完成。

db2 => truncate table test_helloworld IMMEDIATE
DB20000I SQL 命令成功完成。

db2 => BEGIN \
db2 (cont.) => DECLARE p_outval VARCHAR(10); \
db2 (cont.) => DECLARE p_inoutval VARCHAR(10); \
db2 (cont.) => SET p_inoutval = '~Hi~'; \
db2 (cont.) => call HelloWorld2('<a href="https://www..com/s?wd=Edward&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">Edward</a>', p_outval, p_inoutval); \
db2 (cont.) => INSERT INTO test_helloworld VALUES('p_outval=' || p_outval); \
db2 (cont.) => INSERT INTO test_helloworld VALUES('p_inoutval=' || p_inoutval)
; \
db2 (cont.) => <a href="https://www..com/s?wd=END&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">END</a>
DB20000I SQL 命令成功完成。

db2 => select * from test_helloworld
<a href="https://www..com/s?wd=DATA&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">DATA</a>
--------------------
Hello <a href="https://www..com/s?wd=Edward&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">Edward</a>~Hi~
p_outval=A
p_inoutval=B
3 条记录已选择。

⑹ DB2中建立存储过程的详细参数和语法

DECLARE CHOICE2 CURSOR WITH RETURN TO CALLER FOR --声明游标 CHOICE2
SELECT COMPANYID,DEPTID,SEQID,SUBMITTIME,SUBMITDATE,
B.GRADEDESC HYEAR,PRODUCTID,PRODUCTCODE,PRODUCTDESC,
A.GRADEID,PRICE,SFZDPY,LQUANT,MQUANT,MCQUANT,LCQUANT,
UQUANT,OTHQUANT1,OTHQUANT2,OTHQUANT3,OTHQUANT4,EMP1,EMP2,STATUS,A.REMARK,
DECIMAL(ABS(MCQUANT-MQUANT)/NULLIF(MQUANT,0)*100,10,2)TAG
FROM T_SUPPLY_PPB_HY A
LEFT JOIN T_SUPPLY_GRADATION B ON A.GRADEID=B.GRADEID
WHERE HYEAR=TO_CHAR(P_NF)||P_BN
ORDER BY B.GRADEID,PRODUCTCODE,A.PRICE;

--1.DECIMAL(P,S)十进制数,小数点位置由数字的精度(P)和小数位(S)确定。
-- 精度是数字的总位数,必须小于32。小数位是小数部分数字的位数且总是小于或等于精度值。
-- 如果未指定精度和小数位,则十进制值的缺省精度为5,缺省小数位为0。
--2.语法:NULLIF ( expression , expression )
-- expression:(常量、列名、函数、子查询或算术运算符、按位运算符以及字符串运算符的任意组)
-- 如果两个表达式不相等,NULLIF 返回第一个 expression 的值。如果相等,NULLIF 返回第一个 expression 类型的空值。如果两个表达式相等且结果表达式为 NULL,NULLIF 等价于 CASE 的搜索函数。

⑺ 在java中调用db2存储过程,怎样给存储过程传

JDBC调用存储过程: CallableStatement
在Java里面调用存储过程,写法那是相当的固定:
Class.forName(....
Connection conn = DriverManager.getConnection(....
/**
*p是要调用的存储过程的名字,存储过程的4个参数,用4个?号占位符代替
*其余地方写法固定
*/
CallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");
/**
*告诉JDBC,这些个参数,哪些是输出参数,输出参数的类型用java.sql.Types来指定
*下面的意思是,第3个?和第4个?是输出参数,类型是INTEGER的
*Types后面具体写什么类型,得看你的存储过程参数怎么定义的
*/
cstmt.registerOutParameter(3, Types.INTEGER);
cstmt.registerOutParameter(4, Types.INTEGER);
/**
*在我这里第1个?和第2个?是输入参数,第3个是输出参数,第4个既输入又输出
*下面是设置他们的值,第一个设为3,第二个设为4,第4个设置为5
*没设第3个,因为它是输出参数
*/
cstmt.setInt(1, 3);
cstmt.setInt(2, 4);
cstmt.setInt(4, 5);
//执行
cstmt.execute();
//把第3个参数的值当成int类型拿出来
int three = cstmt.getInt(3);
System.out.println(three);
//把第4个参数的值当成int类型拿出来
int four = cstmt.getInt(4);
System.out.println(four);
//用完别忘给人家关了,后开的先关
cstmt.close();
conn.close();

JDBC调用存储过程,掌握这一个程序足够了.
以下是上面程序使用的存储过程的代码,我用的是Oracle数据库,不过不论是什么数据库,对于你的程序,JDBC这一端写法都是一样的.

create or replace procere p
(v_a in number,v_b number,v_ret out number,v_temp in out number)
is
begin
if(v_a > v_b) then
v_ret := v_a;
else
v_ret := v_b;
end if;
v_temp := v_temp + 1;
end;

⑻ db2如何调用带out参数的存储过程

declare 出参变量1 ...;
出参变量2...;
.....;
出参变量N...;
begin
过程(入参1,入参2,...,入参N,出参1,出参2,...,出参N);
end;
/

⑼ DB2存储过程的调用

CALL UPDATE_PLAN(?,?)

问号就是参数

热点内容
面试php程序员 发布:2025-07-27 07:20:04 浏览:449
怎么解压游戏压缩包 发布:2025-07-27 07:14:28 浏览:843
电子存储设备包括 发布:2025-07-27 07:13:52 浏览:146
linuxoracle配置 发布:2025-07-27 07:08:46 浏览:519
php打印pdf 发布:2025-07-27 07:07:19 浏览:74
七源码 发布:2025-07-27 06:55:50 浏览:45
水密码什么面膜好 发布:2025-07-27 06:55:48 浏览:974
荒野行动脚本吧 发布:2025-07-27 06:53:15 浏览:160
遗传算法的交叉概率 发布:2025-07-27 06:40:10 浏览:282
求中位数算法 发布:2025-07-27 06:39:33 浏览:537