日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)

發布時間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

oracle中procedure是不能有返回值的,要想返回值,就得有輸出參數,同樣要想返回記錄集,可以把游標類型作為輸出參數。

下面是詳細情況說明:

?

一:無返回值的存儲過程調用

存儲過程:

create? or replace Procedure PRO_1(PARA1?in VARCHAR2,PARA2 in VARCHAR2)???as????

begin

??? insert into? EMP(ID,NAME)?values (PARA1, PARA2);???

end PRO_1;???

java程序調用:(和下面類同)

?

?

二:有返回值的存儲過程調用(非結果集)

存儲過程:

create? or replace Procedure PRO_2(PARA1?in VARCHAR2,PARA2 OUT VARCHAR2)???as???

bigin??

??? select NAME into PARA2?from EMP?where ID= PARA1;????

end?PRO_2;???

java程序調用:

?

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
??????? Connection conn = DriverManager.getConnection(
??????????? "jdbc:oracle:thin:@202.96.28.250:1521:he", "username", "password");
??????? CallableStatement st = conn.prepareCall("{call PRO_2(?,?)}");

  ? st.setString(1,"1");
??????? st.registerOutParameter(2,OracleTypes.VARCHAR);
??????? st.execute();

??????? String name = st.getString(2);//2與上面存儲過程的out參數位置對應,也可以同時有多個返回值,那就是        ??????? 再多加幾個out參數了

??????? System.out.println(r.getString("title"));

?

三:有返回值的存儲過程調用(返回結果集)

存儲過程:

create or replace procedure Test(p_cur in out sys_refcursor)
as

begin
open p_cur for select * from BOOK;
end;

java程序調用:

try {
??????? DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
??????? Connection conn = DriverManager.getConnection(
??????????? "jdbc:oracle:thin:@202.96.28.250:1521:he", "username", "password");
??????? CallableStatement st = conn.prepareCall(
??????????? "{call Test(?)}");
??????? st.registerOutParameter(1,OracleTypes.CURSOR);
??????? st.execute();
??????? ResultSet r = (ResultSet) st.getObject(1);

??????? while (r.next()) {
??????????? System.out.println(r.getString("title"));
??????? }
??}
??catch(Exception e) {
}

轉載于:https://www.cnblogs.com/xh6210/archive/2012/07/04/2576545.html

總結

以上是生活随笔為你收集整理的java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。