精品日韩在线,日韩精品福利一区二区三区,日韩午夜黄色,国产日韩欧美高清免费

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

Oracle存儲過程的調用

發布時間:  2012/8/16 17:11:45

Oracle 表的語句

  create table student(sid int,sname varchar(20),sno int)

一:無返回值的存儲過程

 create or replace procedure proc_student(para1 Integer, para2 varchar2, para3 Integer)


 is

 

BEGIN
 insert into student(sid,snam,sno) values (para1,para2,para3);
end ;

public class TestProcedureOne {


 public static final String DRIVER = "Oracle.jdbc.driver.OracleDriver";
 public static final String URL = "jdbc:Oracle:thin:@localhost:1521:orcl";
 public static final String USERNAEM = "system";
 public static final String PASSWORD = "123";

 public static void main(String[] args)

{

  ResultSet rs = null;
  Connection conn = null;
  CallableStatement proc = null;
  try {
   Class.forName(DRIVER);
   conn = DriverManager.getConnection(URL, USERNAEM, PASSWORD);

   proc = conn.prepareCall("{call system.testc(?,?,?)}");//這里不是PreparedStatement接口,而是調用存儲過程的接口

   proc.setInt(1, 1);
   proc.setString(2, "zhangsan");
   proc.setInt(3, 2);//這里的參數是根據sql語句的順序來的
   proc.execute();

  } catch (SQLException ex2) {
   ex2.printStackTrace();

  } catch (Exception ex2) {
   ex2.printStackTrace();
  } finally {
   try {
    if (rs != null) {
     rs.close();
     if (proc != null) {
      proc.close();
     }
     if (conn != null) {
      conn.close();
     }
    }
   } catch (SQLException ex1) {
   }
  }
 }
}

二:有返回值的存儲過程(非列表)

  create or replace procedure proc_student2(para_1 Integer,para_2 out varchar2, para_3 out

  Integer)
   is
 begin
  select snam,sno into para_2,para_3 from student where sid =  para_1;
 end proc_student2 ;

 java的主要代碼如下

 proc = conn.prepareCall("{call system.proc_student2(?,?,?)}");

   proc.setInt(1, 1);
   proc.registerOutParameter(2, Types.VARCHAR);//輸出參數的類型
   proc.registerOutParameter(3, Types.INTEGER);
   proc.execute();
   System.out.println(proc.getString(2)+proc.getInt(3));

三:返回列表

由于Oracle存儲過程沒有返回值,它的所有返回值都是通過out參數來替代的,列表同樣也不例外,但由于是集合,所以不能用一般的參數,必須要用pagkage了.所以要分兩部分,

1, 建一個程序包。如下:

 create or replace package package_1

as

type test_cursor is ref cursor;

end package_1;

2,建立存儲過程,存儲過程為:

create or replace prcedure proc_student3(stu_cursor out package_1.test_cursor) is

begin

 open stu_cursor for select * from system.student

end

可以看到,它是把游標(可以理解為一個指針),作為一個out 參數來返回值的。

 java的主要代碼如下

   proc = conn.prepareCall("{call system.proc_student3(?)}");
   proc.registerOutParameter(1, Oracle.jdbc.OracleTypes.CURSOR);
   proc.execute();
   rs = (ResultSet) proc.getObject(1);
   while(rs.next()){
    System.out.println(rs.getInt(1)+rs.getString(2)+rs.getInt(3));
 


本文出自:億恩科技【www.zuiquanben.com】

Oracle 表的語句

  create table student(sid int,sname varchar(20),sno int)

一:無返回值的存儲過程

 create or replace procedure proc_student(para1 Integer, para2 varchar2, para3 Integer)


 is

 

BEGIN
 insert into student(sid,snam,sno) values (para1,para2,para3);
end ;

public class TestProcedureOne {


 public static final String DRIVER = "Oracle.jdbc.driver.OracleDriver";
 public static final String URL = "jdbc:Oracle:thin:@localhost:1521:orcl";
 public static final String USERNAEM = "system";
 public static final String PASSWORD = "123";

 public static void main(String[] args)

{

  ResultSet rs = null;
  Connection conn = null;
  CallableStatement proc = null;
  try {
   Class.forName(DRIVER);
   conn = DriverManager.getConnection(URL, USERNAEM, PASSWORD);

   proc = conn.prepareCall("{call system.testc(?,?,?)}");//這里不是PreparedStatement接口,而是調用存儲過程的接口

   proc.setInt(1, 1);
   proc.setString(2, "zhangsan");
   proc.setInt(3, 2);//這里的參數是根據sql語句的順序來的
   proc.execute();

  } catch (SQLException ex2) {
   ex2.printStackTrace();

  } catch (Exception ex2) {
   ex2.printStackTrace();
  } finally {
   try {
    if (rs != null) {
     rs.close();
     if (proc != null) {
      proc.close();
     }
     if (conn != null) {
      conn.close();
     }
    }
   } catch (SQLException ex1) {
   }
  }
 }
}

二:有返回值的存儲過程(非列表)

  create or replace procedure proc_student2(para_1 Integer,para_2 out varchar2, para_3 out

  Integer)
   is
 begin
  select snam,sno into para_2,para_3 from student where sid =  para_1;
 end proc_student2 ;

 java的主要代碼如下

 proc = conn.prepareCall("{call system.proc_student2(?,?,?)}");

   proc.setInt(1, 1);
   proc.registerOutParameter(2, Types.VARCHAR);//輸出參數的類型
   proc.registerOutParameter(3, Types.INTEGER);
   proc.execute();
   System.out.println(proc.getString(2)+proc.getInt(3));

三:返回列表

由于Oracle存儲過程沒有返回值,它的所有返回值都是通過out參數來替代的,列表同樣也不例外,但由于是集合,所以不能用一般的參數,必須要用pagkage了.所以要分兩部分,

1, 建一個程序包。如下:

 create or replace package package_1

as

type test_cursor is ref cursor;

end package_1;

2,建立存儲過程,存儲過程為:

create or replace prcedure proc_student3(stu_cursor out package_1.test_cursor) is

begin

 open stu_cursor for select * from system.student

end

可以看到,它是把游標(可以理解為一個指針),作為一個out 參數來返回值的。

 java的主要代碼如下

   proc = conn.prepareCall("{call system.proc_student3(?)}");
   proc.registerOutParameter(1, Oracle.jdbc.OracleTypes.CURSOR);
   proc.execute();
   rs = (ResultSet) proc.getObject(1);
   while(rs.next()){
    System.out.println(rs.getInt(1)+rs.getString(2)+rs.getInt(3));
 


本文出自:億恩科技【www.enidc.com】
-->

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1-20183354
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 網絡版權侵權舉報電話:0371-60135995
  • 警情提示:注意防范電信網絡詐騙
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2026 ENKJ All Rights Reserved 地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師  B1-20183354   京公網安備41019702002023號 
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線

     
     
    精品日韩在线,日韩精品福利一区二区三区,日韩午夜黄色,国产日韩欧美高清免费
    蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美网站在线| 麻豆视频观看网址久久| 精品国产亚洲日本| 欧美日韩亚洲一区| 丰满少妇一区| 你懂的网址国产 欧美| 蜜臀91精品一区二区三区| 免费人成网站在线观看欧美高清| 久久精品国产www456c0m| 给我免费播放日韩视频| 亚洲精品精选| 久久国内精品自在自线400部| 国产福利亚洲| 久久精品凹凸全集| 国产精品视频一区二区三区| 一本大道色婷婷在线| 999久久久91| 久久精品免费一区二区三区| 久久都是精品| 国产精品久久久久久久久久妞妞| 国产乱子精品一区二区在线观看| 免费日韩一区二区三区| 精品亚洲精品| 欧美日一区二区| 日韩av不卡在线观看| 精品免费av| 日韩一级精品| 激情综合五月| 欧美午夜不卡| 国产精品伦一区二区| 不卡在线一区| 日韩中文av| 久久97视频| 亚洲福利国产| 只有精品亚洲| 91一区二区三区四区| 播放一区二区| 日韩av中文字幕一区| 一本大道色婷婷在线| 最新亚洲一区| 国产成人黄色| 清纯唯美亚洲综合一区| 精品久久中文| 日韩av中文字幕一区二区三区| 国产一区二区久久久久| 免费日韩av| 天堂av在线| 中文字幕成人| 亚洲国产日韩欧美在线| 精品国产中文字幕第一页| 美腿丝袜亚洲一区| 香蕉久久久久久| 免费在线成人网| www.51av欧美视频| 国产精品大片免费观看| 欧美视频二区| 亚洲精品一级| 亚洲精品少妇| 日韩中文字幕亚洲一区二区va在线| 日本不卡免费高清视频在线| 久久中文字幕导航| 国产精品视频一区二区三区四蜜臂| 亚洲精品1区2区| 久久精品免费一区二区三区 | 国产精品传媒麻豆hd| 日本vs亚洲vs韩国一区三区二区| 伊人久久亚洲热| 亚洲一区网站| 亚洲国产不卡| 视频一区欧美日韩| 亚洲男人在线| 欧美有码在线| 精品久久久亚洲| 鲁大师精品99久久久| 午夜视频一区二区在线观看| 日韩免费精品| 美女在线视频一区| 国产欧美丝祙| 精品三级国产| 亚洲精品1区| 免费成人av在线播放| 日韩精选在线| 国产精品久久| 91视频一区| 99在线精品免费视频九九视| 中文日韩在线| 久久wwww| 亚洲午夜视频| 亚洲日本免费电影| 蜜臀av在线播放一区二区三区 | 免费日韩一区二区三区| 欧美激情在线精品一区二区三区| 国产白浆在线免费观看| 欧美日韩国产综合网| 蜜桃伊人久久| 精品三级在线| 日韩一区二区三区精品| 日韩二区三区四区| 亚洲激情久久| 国产成人在线中文字幕| 中文字幕一区二区精品区| 中国字幕a在线看韩国电影| 免费久久精品| 成人日韩av| 婷婷亚洲精品| 久久视频精品| 日韩av二区在线播放| 激情综合自拍| 久久精品国产免费| 日韩av午夜在线观看| 视频一区视频二区中文| 久久国产免费| 成人国产综合| 亚洲香蕉视频| 国产真实久久| 久久精品一区二区三区中文字幕| 狠狠色综合网| 综合日韩av| 国产欧美在线| 亚洲一区区二区| 最新日韩av| 久热精品在线| 久久精品国产www456c0m| 麻豆精品视频在线观看免费| 日韩午夜视频在线| 蜜臀av在线播放一区二区三区| 黄色网一区二区| 精品在线网站观看| 美女久久久久久 | 国模 一区 二区 三区| 日韩高清欧美| 高清日韩欧美| 久久影院午夜精品| av在线资源| 在线观看精品| 午夜精品婷婷| 亚洲欧美视频| 日韩精品亚洲专区在线观看| 国产午夜久久av| 国产精品极品在线观看| 久久午夜影院| 日本不卡免费高清视频在线| 精品视频一区二区三区四区五区 | 亚洲伦乱视频| 精品日韩毛片| 蜜桃久久久久久| 欧美另类中文字幕| 久久亚州av| 精品视频一区二区三区四区五区 | 丝袜诱惑一区二区| 91久久中文| 亚洲精品高潮| 日韩国产91| 亚洲精品永久免费视频| 2023国产精品久久久精品双| 国产91久久精品一区二区| 丝袜美腿成人在线| 欧美a一区二区| 久久久久蜜桃| 久久夜色精品| 国产成人精品一区二区免费看京 | 日韩超碰人人爽人人做人人添| 欧美黄色一区二区| 国产精品日韩欧美一区| 日韩午夜av在线| 国产精品网址| 日韩视频免费| 日韩欧美在线精品| 美女视频黄 久久| 欧美理论视频| 麻豆精品久久久| 黑丝一区二区三区| 国产精品不卡| 国产亚洲精aa在线看| 极品日韩av| 韩国女主播一区二区三区| 麻豆9191精品国产| 日韩精品免费一区二区三区| 日韩专区视频网站| 欧美一区二区三区高清视频| 国产欧美日韩一区二区三区在线| 国产亚洲永久域名| 99久久夜色精品国产亚洲1000部| 麻豆精品国产91久久久久久| 中文一区一区三区免费在线观 | 四虎国产精品免费观看| 婷婷精品久久久久久久久久不卡| 红桃视频欧美| 中国字幕a在线看韩国电影| 亚洲精品第一| 中文不卡在线| 蜜臀91精品一区二区三区| 久久69成人| 国产激情欧美| 欧美视频精品全部免费观看| 日韩视频一区二区三区在线播放免费观看| 日韩欧美中文| 久久精品国产亚洲夜色av网站 | 四虎4545www国产精品|