oracle和sqlserver不一樣的地方有很多。
個人最深的體會是儲存過程返回結果集,在sqlserver中直接select查詢就行,oracle就不行了。
這裡,就用最簡單的例子說明儲存過程返回結果集的例子
createorreplace
procedure
儲存過程名(
欄位名
invarchar2,
l_result out types.rq_ref_cursor -- 包裡面方法名)is
str_sql
varchar2(8000) :=
'';
begin
str_sql:='
select * from tabelname where id=
'||欄位名;
open
l_result
forstr_sql;
endregion_linkage;
建立包(非必須)
createorreplace package types as
type rq_ref_cursor
is ref cursor
;end;
建立包並非是必須的,將 ref cursor 直接加在儲存過程的out關鍵字後面也可以
另外補充上c#中呼叫儲存過程的通用方法
public datatable insertt_builditem(stringregion_id)
catch
(exception e)
return ds.tables[0
]; }
相關文件
oracle初級教程:
在ORACLE儲存過程中建立臨時表
create procedure pro asstr varchar2 100 begin str create global temporary table tablename col1 varchar2 10 col2 number on mit preserve rows execute im...
oracle 在儲存過程中定義動態sql
表結構 create table item prop pid integer,name varchar2 20 is key prop integer,is sale prop integer,is color prop integer,parent pid integer,parent vid v...
在ORACLE儲存過程中建立臨時表
create procedure pro asstr varchar2 100 begin str create global temporary table tablename col1 varchar2 10 col2 number on commit preserve rows execute...