自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle中把Array類型作為參數(shù)傳入存儲(chǔ)過程的示例

數(shù)據(jù)庫 Oracle
本文我們主要介紹了Oracle中把Array類型作為參數(shù)傳入存儲(chǔ)過程,并用Java對其進(jìn)行調(diào)用的示例,希望能夠?qū)δ兴鶐椭?/div>

Oracle中把Array類型作為參數(shù)傳入存儲(chǔ)過程并用Java對其進(jìn)行調(diào)用的示例是本文我們主要要介紹的內(nèi)容,接下來我們就開始介紹這一過程。

使用Oracle Database 11g Enterprise Edition Release 11.2.0.1.0. 步驟:

1. 創(chuàng)建自定義的類型。由于Oracle沒有提供現(xiàn)成的array類型,這里用table類型來模擬。

CREATE OR REPLACE TYPE varchar_array is Table OF varchar2(128) 創(chuàng)建后,varchar_array是一個(gè)table,里面元素的類型為varchar2(128).

2. 創(chuàng)建一個(gè)存儲(chǔ)過程test1. 這個(gè)過程接受一個(gè)上面創(chuàng)建的varchar_array類型作為輸入?yún)?shù). 在過程體中,通過一個(gè)循環(huán)遍歷傳入的array中的每一個(gè)元素, 插入到一個(gè)表tb中:

  1. create or replace procedure test1(arr in varchar_array) is  
  2. begin  
  3. FOR i IN arr.first .. arr.last LOOP  
  4. insert into tb values(arr(i));  
  5. END LOOP;  
  6. end test1; 

 

3. 數(shù)據(jù)庫這邊的基本上完事了。 Java程序如下, 基本上和普通程序差不多:

  1. String driver = "oracle.jdbc.driver.OracleDriver";  
  2.  
  3. String strUrl = "jdbc:oracle:thin:@192.168.1.199:1521:orcl";  
  4. Statement stmt = null;  
  5. ResultSet rs = null;  
  6. Connection conn = null; try {  
  7. Class.forName(driver);  
  8. conn = DriverManager.getConnection(strUrl, "user", "pass");  
  9. CallableStatement proc = null;  
  10. proc = conn.prepareCall("{ call test1(?) }"); //調(diào)用存儲(chǔ)過程test1  
  11. //不一樣的地方,獲得上面創(chuàng)建的自定義的類型,注意大小寫  
  12. ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("VARCHAR_ARRAY",   
  13. conn);  
  14. List list = new ArrayList();  
  15. list.add("a");  
  16. list.add("b");   
  17. //把list中的元素轉(zhuǎn)換成自定義的類型  
  18. ARRAY array = new ARRAY(descriptor, conn, list.toArray()); proc.setArray(1, array); proc.execute(); catch (Exception ex) {  
  19. ex.printStackTrace();  
  20. } finally {  
  21. ..... 各種 close ......  

 

執(zhí)行該Java程序,查詢表tb,程序中的元素正常插入。

以上就是Oracle中把Array類型作為參數(shù)傳入存儲(chǔ)過程,并用Java對其進(jìn)行調(diào)用的示例的全部,本文我們就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. Oracle數(shù)據(jù)庫GLOBAL_NAMES參數(shù)的詳細(xì)研究
  2. Oracle數(shù)據(jù)庫分析函數(shù)應(yīng)用實(shí)例之查找狀態(tài)全為1的ID
  3. Oracle 10g UNDO表空間過大導(dǎo)致磁盤空間不足的解決
  4. Oracle handbook系列之虛擬專用數(shù)據(jù)庫VPD的使用詳解
  5. Oracle 10g中UNDO數(shù)據(jù)的作用及UNDO表空間的操作詳解
責(zé)任編輯:趙鵬 來源: 火魔網(wǎng)
相關(guān)推薦

2010-10-09 16:58:59

MYSQL存儲(chǔ)過程

2010-04-16 12:38:37

Oracle集合類型

2010-04-16 11:39:56

Oracle存儲(chǔ)過程

2011-09-01 13:09:58

SQL Server DataTable作為

2010-04-12 09:26:52

Oracle查詢分頁

2011-08-12 11:22:53

Oracle存儲(chǔ)過程Java

2010-06-02 10:09:29

MySQL 存儲(chǔ)過程參

2011-08-18 17:32:40

Oracle存儲(chǔ)過程利用游標(biāo)返回結(jié)果集

2011-04-11 17:28:50

oracle存儲(chǔ)select語句

2010-04-07 13:12:25

Oracle存儲(chǔ)過程

2010-04-16 10:11:20

Oracle存儲(chǔ)過程

2010-10-09 17:08:15

MySQL存儲(chǔ)過程

2010-04-15 16:54:31

Oracle存儲(chǔ)過程

2010-05-06 14:01:12

Oracle分頁存儲(chǔ)過

2010-04-15 17:31:10

Oracle存儲(chǔ)過程

2010-10-29 16:06:55

Oracle存儲(chǔ)過程

2018-10-12 11:26:13

oracle存儲(chǔ)語法

2010-04-08 16:41:29

Oracle存儲(chǔ)過程

2010-11-16 14:30:32

Oracle存儲(chǔ)過程

2018-08-28 11:40:47

存儲(chǔ)過程語法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)