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%rowcount;
commit;