關於向Oracel儲存過程傳集合的代替方法

2021-04-19 21:06:12 字數 912 閱讀 3434

首先我們要把集合中的所有元素用字串相連,形成乙個長的字串.如下:這裡的arraylist裡面放的是id

string ids = "";

foreach(string str in list)

ids = ids+str+",";

//去掉最後面的逗號

ids = ids.substring(0,ids.length-1);

然後寫儲存過程

create or replace procedure procname

inids varchar2   

isstartposition number(10); 

len number(10); 

output varchar2(100);

v_id number(38);

begin

loop 

select instr(inids,',',startposition ) into len from dual;  

if len!=0 then 

select substr(inids,startposition,len-startposition) into output from dual;

v_id := to_number(output);

--這裡寫處理**

else 

select substr(inids,startposition) into output from dual;

v_id := to_number(output);

--這裡寫處理**

exit; 

end if;  

startposition:=len+1;

end loop;

end;

至於c#怎樣和orcal的儲存過程 相接合,那是另外乙個話題.

oracel 定時執行儲存過程

一 環境 oracel 11g 二 步驟 1 建立儲存過程 例如 儲存過程邏輯為 在表中插入一條資料 create or replace procedure 儲存過程名稱 is begin insert into t tset job test id,create time values seq t...

關於c 呼叫oracle儲存過程返回資料集的寫法

create or replace package body report.clinic rate asprocedure clinic master start date date,end date date,i number,t rate out t cursor is begin open t...

關於多結果集的儲存過程的處理

對於乙個存諸過程,如果返回的結果是我們預先知道的,那麼可以根據儲存過程定義的順序來進行 處理 事實上一般不會這樣 但對於複雜的多結果集的處理,如何定義乙個通用的流程?我們先看一下jdbc本身能為我們提供什麼?乙個儲存過程執行後返回的是boolean型 boolean flag callablesta...