中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle中怎么創建存儲過程

發布時間:2021-06-24 15:53:25 來源:億速云 閱讀:208 作者:Leah 欄目:大數據

這期內容當中小編將會給大家帶來有關Oracle中怎么創建存儲過程,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。


   一、JAVA調用Oracle存儲過程
   JAVA跟Oracle之間最常用的是JAVA調用Oracle的存儲過程,以下簡要說明下JAVA如何對Oracle存儲過程進行調用。
   Ⅰ、不帶輸出參數情況
      過程名稱為pro1,參數個數1個,數據類型為整形數據

import  java.sql. * ;
public   class  ProcedureNoArgs
{
    public   static   void  main(String args[])  throws  Exception
    {
        // 加載Oracle驅動  
        DriverManager.registerDriver( new  oracle.jdbc.driver.OracleDriver());
        // 獲得Oracle數據庫連接  
        Connection conn = DriverManager.getConnection( " jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd " ); 

        // 創建存儲過程的對象  
        CallableStatement c = conn.divpareCall( " {call pro1(?)} " );

        // 給Oracle存儲過程的參數設置值 ,將第一個參數的值設置成188  
        c.setInt( 1 , 188 );

        // 執行Oracle存儲過程  
        c.execute();
        conn.close();
    }
}

     Ⅱ、帶輸出參數的情況
       過程名稱為pro2,參數個數2個,數據類型為整形數據,返回值為整形類型

import java.sql.*;
public class ProcedureWithArgs
{
    public static void main(String args[]) throws Exception
    {
        //加載Oracle驅動 
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
        //獲得Oracle數據庫連接 
        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd "); 

        //創建Oracle存儲過程的對象,調用存儲過程 
        CallableStatement c=conn.divpareCall("{call pro2(?,?)}");

        //給Oracle存儲過程的參數設置值 ,將第一個參數的值設置成188 
        c.setInt(1,188);
        //注冊存儲過程的第二個參數 
        c.registerOutParameter(2,java.sql.Types.INTEGER);    //執行Oracle存儲過程 
        c.execute();
        //得到存儲過程的輸出參數值并打印出來
        System.out.println (c.getInt(2));
        conn.close();
    }
}

Oracle存儲過程包含三部分:過程聲明,執行過程部分,存儲過程異常。

Oracle存儲過程可以有無參數存儲過程和帶參數存儲過程。 
    一、無參程序過程語法

create or replace procedure NoParPro

as …… ;

begin

 …… ;

exception     //存儲過程異常

 ……   ;

end;

    二、帶參存儲過程實例

create or replace procedure queryempname(sfindno emp.empno%type) as
       sName emp.ename%type;
       sjob emp.job%type;
begin
       ....
exception
          ....
end;

    三、 帶參數存儲過程含賦值方式

create or replace procedure runbyparmeters  (isal in emp.sal%type, 
                            sname out varchar,sjob in out varchar)
as icount number;
begin
      select count(*) into icount from emp where sal>isal and job=sjob;
      if icount=1 then
        ....
      else
        ....
      end if;
 exception
      when too_many_rows then
      DBMS_OUTPUT.PUT_LINE('返回值多于1行');
      when others then
      DBMS_OUTPUT.PUT_LINE('在RUNBYPARMETERS過程中出錯!');
 end;

  四、在Oracle中對存儲過程的調用
  過程調用方式一

 declare
       realsal emp.sal%type;
       realname varchar(40);
       realjob varchar(40);
 begin   //存儲過程調用開始
       realsal:=1100;
       realname:='';
       realjob:='CLERK';
       runbyparmeters(realsal,realname,realjob);     --必須按順序
       DBMS_OUTPUT.PUT_LINE(REALNAME||'   '||REALJOB);
 END;  //過程調用結束


  過程調用方式二

 declare
       realsal emp.sal%type;
       realname varchar(40);
       realjob varchar(40);
 begin    //過程調用開始
       realsal:=1100;
       realname:='';
       realjob:='CLERK';
       runbyparmeters(sname=>realname,isal=>realsal,sjob=>realjob);  --指定值對應變量順序可變
       DBMS_OUTPUT.PUT_LINE(REALNAME||'   '||REALJOB);
 END;  //過程調用結束 

上述就是小編為大家分享的Oracle中怎么創建存儲過程了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

琼中| 婺源县| 枣阳市| 嘉峪关市| 沅江市| 孝感市| 溧水县| 赞皇县| 福贡县| 芜湖市| 通海县| 鹤岗市| 孟州市| 喀什市| 盖州市| 田东县| 革吉县| 农安县| 桐城市| 利辛县| 永泰县| 郧西县| 无棣县| 南召县| 沅江市| 新郑市| 怀安县| 金平| 稻城县| 临湘市| 海盐县| 江城| 卢氏县| 延安市| 周宁县| 托里县| 金堂县| 积石山| 衢州市| 南丹县| 顺义区|