程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle集合類型如何輸出參數PL存儲過程

Oracle集合類型如何輸出參數PL存儲過程

編輯:Oracle數據庫基礎

以下的文章主要是介紹Oracle集合類型的輸出參數PL/SQL的存儲過程,我們現在的Java數據庫的關系映射技術在一定程度上是不提倡使用存儲過程的,其實存儲過程更能發揮數據庫的效率。

1 引言

存儲過程因其執行效率高、與事務處理的結合、運行更安全等優點,在數據庫應用程序中被廣泛采用。PL/SQL是用於從各種環境中訪問Oracle數據庫的一種編程語言,它與數據庫服務器集成在一起,PL/SQL編寫的存儲過程編譯效率高,網絡系統開銷小,同時PL/SQL直觀性好,是大多數人的選擇。

以Number、Varchar等基本標量類型為輸出參數的PL/SQL存 儲過程,每個輸出參數只能返回一個對應值。而在實際數據庫應用程序中,尤其是在進行系統綜合查詢統計時,往往需要返回二維數組或結果集,這時應考慮在存儲 過程中使用集合這種數據結構。對於集合,我們可以一次把許多元素作為一個整體進行操作,也可以對集合中的單個元素進行操作,使用方便、靈活。

2 PL/SQL存儲過程及Java程序的編寫

2.1 索引表作為輸出參數

索引表是無約束的,其大小的唯一限制(除可用內存外)就是它的關鍵字BINARY_INTEGER類型所能表示數值的約束(-2147483647...+2147483647),其元素不需要按任何特定順序排列。在聲明時,我們不需要指定其大小,而且對索引表的元素可以直接賦值,不用初始化,可見使用索引表極其方便。

2.1.1存儲過程的編寫

我們可以在PL/SQL語句塊中定義索引表,但作為輸出參數的索引表,必須要在包(package)裡定義,方法如下:

  1. create or replace package out_param is  

定義了元素是varchar2類型的一個索引表類型

  1. type out_index_table_typ is table of varchar2(50) 
    index by binary_integer;  
  2. end out_param; 

接下來就可以在pl/sql存儲過程裡引用在包裡定義的索引表類型:

  1. create or replace procedure testPro1
    (in_param in varchar2,o_table out out_param. out_index_table_typ ) is  
  2. begin  

這裡略去程序體

  1. end testPro1;  

其中,返回的索引表類型前必須用包名加上句點來引用out_param. out_index_table_typ ,以上的相關內容就是對Oracle集合類型輸出參數的PL/SQL存儲過程的介紹,望你能有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved