當前位置:首頁 » 存儲配置 » 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(?,?)

問號就是參數

熱點內容
音頻演算法matlab 發布:2025-07-26 21:07:51 瀏覽:947
java位移運算符 發布:2025-07-26 20:59:19 瀏覽:769
如何把java文件編譯成class 發布:2025-07-26 20:48:53 瀏覽:446
編程大家族 發布:2025-07-26 20:45:36 瀏覽:625
iperflinux 發布:2025-07-26 20:35:05 瀏覽:653
網站源碼修改 發布:2025-07-26 20:13:00 瀏覽:429
linux查看文件夾結構圖 發布:2025-07-26 20:04:48 瀏覽:636
如何用電腦模擬安卓手機軟體 發布:2025-07-26 19:59:34 瀏覽:437
文件夾軟 發布:2025-07-26 19:59:33 瀏覽:775
資料庫清單 發布:2025-07-26 19:55:53 瀏覽:217