亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

岳池县| 郯城县| 治县。| 赤壁市| 都匀市| 寿宁县| 榕江县| 新晃| 库伦旗| 巴南区| 平江县| 呈贡县| 尉犁县| 旬邑县| 安陆市| 珲春市| 大余县| 上虞市| 交城县| 吴堡县| 沂水县| 彩票| 武隆县| 通榆县| 萨迦县| 肥西县| 台北市| 武陟县| 察雅县| 五家渠市| 莱西市| 鄂托克旗| 平昌县| 高雄市| 历史| 吉安市| 乐都县| 青州市| 榆中县| 庆安县| 奈曼旗|