c 呼叫帶有引數的儲存過程方法 oracle篇

2022-03-12 04:17:36 字數 1369 閱讀 6742

1  

由於交叉表的八個報表寫在

sql中了,每個報表對應

sql語句有

300行之多,不能定義檢視,因為必須傳遞個引數,所以利用了儲存過程實現。

首先,定義包,然後定義包體,在用

.net

呼叫生成資料集即可

.net

呼叫oracle

帶引數的儲存過程,返回資料集

oracle

這個複雜一些,步驟如下:

在pl/sql

中首先寫包的定義檔案

create or replace package zhbb as

type t_cursor is ref cursor ;

procedure zh11 (rq in char, io_cursor in out t_cursor);

procedure zh12 (rq in char, io_cursor in out t_cursor);

end zhbb;

其次寫包體的定義檔案

create or replace package body zhbb as

procedure zh11(rq in char, io_cursor in out t_cursor) is

v_cursor t_cursor;

begin

open v_cursor for

select * from aa where ny=rq;

io_cursor := v_cursor;

end zh11;

procedure zh12 (rq in char, io_cursor in out t_cursor) is

。。。。。

end zh12;

.net

呼叫方法:

public

static datatable getdatatable(string packagename,string proname,string connstring,string rq)

)}", oraclecon);

cmd.connection = oraclecon;

cmd.parameters.add("rq", oledbtype.varchar, 8).value = ""+ rq +"";

oledbdataadapter da = new oledbdataadapter(cmd);

datatable dt = new datatable();

//dataset ds = new dataset();

da.fill(dt);

oraclecon.close();

oraclecon.dispose();

return dt;}}

C 呼叫帶有引數的SQL儲存過程

public void abc sqlconnection conn new sqlconnection server 10.19.1.59 database mete data uid sa pwd 123 sqlconnection conn new sqlconnection server d...

帶有引數的儲存過程

建立有引數的存數過程,對比函式的定義而言,as就相當於 和函式一樣,引數都定義在主體的前面 例如函式 private static void sum double num1,double num2 在呼叫的時候在 static void main string srgs 寫就可以啦。儲存過程 cre...

帶有輸入引數的儲存過程

建立帶有輸入引數的儲存過程 drop procedure if exists proc user in delimiter create procedure proc user in in in param int begin select from user where userid in par...