oracle 向儲存過程傳入陣列型別引數

2021-06-05 22:46:13 字數 838 閱讀 7350

最近想試試給儲存過程傳陣列引數,破費周折,在這裡與大家分享下:

我用的plsql, 開啟plsql,在type目錄下面,可以建立自定義的資料型別, 於是用  create or replace type tab_str as table  of varchar2(30);  建立了乙個陣列型別。

接著用儲存過程 procedure testfortable(pra in tab_str , pra_out out varchar2);  去呼叫,在c#裡用

cmd.commandtype = commandtype.storedprocedure;

cmd.commandtext = "dlias.pra_table.testtemp";

oracleparameter param1 = new

oracleparameter(@"pra", oracledbtype.varchar2, 3);

param1.direction = parameterdirection.input;

param1.collectiontype = oraclecollectiontype.plsqlassociativearray;

param1.value = new string[3];

去呼叫儲存過程,但是一直提示我 引數個數或型別錯誤。找了很久的錯誤,我在包裡用  type list_type is table of varchar2(20) index by binary_integer;  建立了乙個陣列型別,測試通過了,千萬記得 ,不能把index by binary_integer去掉,否則會報錯,我也不知道為什麼,如果有高人知道, 求指點

SQL 儲存過程 傳入陣列引數

今天在做統計資料的時候,傳入陣列導致資料不顯示。解決方式和大家分享一下 引數 companyname 北京,天津,上海 declare pointerprev int declare pointercurr int declare tname nvarchar 100 set pointerprev...

oracle儲存過程傳入in引數,返回結果集

create or replace procedure proc report test zhxshss in varchar2,pcursor out sys refcursor asbegin open pcursor for select from sys user t where t.id ...

向Oracle中傳入陣列,批量執行SQL語句

1 首先用pl sql建立package 1 create orreplace package excutebatchoperate2as 3 type sqlstr array is table ofvarchar2 1000 index bybinary integer 4procedure e...