準備:
環境:pl/sql+oracle9i+vs2008
建立表test:
create table test
(id number,//編號
name varchar2(10),//姓名
*** varchar2(2),//性別
age number,//年齡
address varchar2(200)//住址
)1.執行不帶引數的oracle儲存過程:
首先編寫乙個不帶引數的oracle儲存過程:
create or replace procedure proc1
isbegin insert into test(id,name,***,age) values(1,'liheng','男',25);
commit;//記得寫上這段事務提交語句
end;
c#呼叫**如下:
oracleconnection conn = new oracleconnection("server=cw;uid=ls0019999;pwd=aaaaaa");
conn.open();
oraclecommand cmd = conn.createcommand();
cmd.commandtype = commandtype.storedprocedure;//指明是執行儲存過程
cmd.commandtext = "proc1";
cmd.executenonquery();
conn.close();
2.執行輸入型別引數的儲存過程:
首先編寫乙個輸入型別引數的儲存過程:
create or replace procedure proc2
(v_id number,
v_name varchar2)is
begin
insert into test(id,name) values(v_id,v_name);
commit;
end;
c#呼叫**如下:
//在傳入引數的過程中,我用了兩個文字框來接受使用者輸入的引數,並且做了個簡單的校驗
if (string.isnullorempty(this.textbox1.text))
if (string.isnullorempty(this.textbox2.text))
oracleconnection conn = new oracleconnection("server=cw;uid=ls0019999;pwd=aaaaaa");
conn.open();
oraclecommand cmd = conn.createcommand();
cmd.commandtype = commandtype.storedprocedure;
cmd.commandtext = "proc2";
cmd.parameters.add("v_id", oracletype.number).direction = parameterdirection.input;//指明傳入的引數是輸入給oracle儲存過程用的
cmd.parameters["v_id"].value =this.textbox1.text.trim();
cmd.parameters.add("v_name",oracletype.nvarchar).direction = parameterdirection.input;//指明傳入的引數是輸入給oracle儲存過程用的
cmd.parameters["v_name"].value =this.textbox2.text.trim();
cmd.executenonquery();
conn.close();
3. 執行輸出型別引數的儲存過程:
首先編寫乙個輸出型別的儲存過程:
create or replace procedure proc3
(reccount out number)is
begin
select count(*) into reccount from test;
end;
這段儲存過程的意思求表中記錄總數
c#呼叫**如下:
oracleconnection conn = new oracleconnection("server=cw;uid=ls0019999;pwd=aaaaaa");
conn.open();
oraclecommand cmd = conn.createcommand();
cmd.commandtype = commandtype.storedprocedure;
cmd.commandtext = "proc3";
cmd.parameters.add("reccount",oracletype.number).direction = parameterdirection.output;
cmd.executenonquery();
//這裡我用了乙個文字框來接受執行儲存過程之後返回的引數值
this.textbox3.text=cmd.parameters["reccount"].value.tostring();
總結:以上**都成功執行,可以照我這個進行擴充套件延伸,道理都是一樣的,結果是不同的。
C 呼叫oracle儲存過程
建立oracle過程儲存 create or replace procedure proce test paramin in varchar2,paramout out varchar2,paraminout in out varchar2 asvarparam varchar2 28 begin ...
c 呼叫oracle儲存過程
create or replace package pkg tabletype is type tabletype is ref cursor procedure sp cpzd cpno in varchar2,status in varchar2,t sql out tabletype end ...
C 呼叫oracle儲存過程
c 呼叫oracle儲存過程 oracle方面 建立oracle過程儲存 create or replace procedure proce test paramin in varchar2,paramout out varchar2,paraminout in out varchar2 asvar...