日期:2014-05-17  浏览次数:20914 次

oracle 中带有输出参数的存储过程的使用

create table userinfo
(
   userid number(10) primary key,
   
   username nvarchar2(20) not null,
   
   userpwd nvarchar2(20) not null,
   
   usertitle nvarchar2(50),
   
   usermes nvarchar2(100)
    
);

create table userMes
(
    umid integer primary key,
    userid number(10) references userinfo(userid),
    umname nvarchar2(20)
);

--创建一个存储过程

create or replace procedure proc_createuserinfo
(
    username in varchar2 default null,
    userpwd  in varchar2 default null,
    usertitle  in varchar2 default null,
    usermes  in varchar2 default null,
    uusermes in varchar2 default null,
    result   out number
)
is
   uuid number:=seq_uid.nextval;

begin 
  insert into userinfo(userid,username,userpwd,usertitle,usermes) values(uuid,username,userpwd,usertitle,usermes);
  insert into usermes(umid,userid,umname) values(seq_mid.nextval,uuid,uusermes);
commit;
result:=sqlcode;;
end;  



上面的代码是我创建了俩张表和一个存储过程,存储过程里面有一个输出参数,我要怎么才可以让这个输出信息显示出来呢?就像查询一张表一样可以显示查询出的数据,

另外我在c#中又要怎么使用这个存储过程呢,输出参数如何接收呢?

谢谢各位了!
存储 oracle c#

------解决方案--------------------
你调用这个存储过程,就会返回啊
------解决方案--------------------
用DataSet接收就可以了,DataRead也可以
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

你调用这个存储过程,就会返回啊


我要在plsql中输出,调用了没有输出呀!


看看你是怎么调用的?




declare
  v_shuchu number;

begin
  proc_createuserinfo('qq','yy','vv','ww','ee',v_shuchu);
  dbms_output.put_line(v_shuchu);
end;



是这样的,为什么我是插入俩条数据,输出的信息是0呢?


sqlcode为0标示执行成功啊。楼主是需要输出什么? 执行成功的条数吗?

如果是需要执行成功的条数,如下红色标识:

begin   insert into userinfo(userid,username,userpwd,usertitle,usermes) values(uuid,username,userpwd,usertitle,usermes);   insert into usermes(umid,userid,umname) values(seq_mid.nextval,uuid,uusermes);
result := sql%rowc