--oracle语句
create table ACCOUNTID
(
INITID INTEGER,
STRACCOUNT VARCHAR2(10)
)
/
insert into ACCOUNTID values('1','aa')/ create or replace procedure test1(cname in varchar2,cdept in out varchar2,cid out resultData)
is
begin
open cid for
select * from ACCOUNTID;
cdept:='111';
end;
'vb调用代码'cn.Open "Provider=MSDAORA.1;Persist Security Info=False;" & _
"User ID=" & strUid & ";PassWord=" & strPWD & ";Data Source=" & strDatabase & ";" ' Set cmd = New ADODB.Command
cmd.ActiveConnection = cn cmd.CommandType = adCmdStoredProc
cmd.CommandText = "test1"
cmd.Parameters.Append cmd.CreateParameter("cname", adLongVarChar, adParamInput, 1000, " ")
cmd.Parameters.Append cmd.CreateParameter("cdept", adLongVarChar, adParamInputOutput, 1000, " ")
Set rs = cmd.Execute(Null, Null, adCmdStoredProc)
MsgBox rs.RecordCount适时错误'-2147217900'
ora-06550:line 1,column7:
object system.test1 is invalid
ora-06550:line1,column 7:
pl/sql:statement ignored在网上看过好多事例,可是就是不好用,网上有介绍说用游标返回结果集,可是在vb6.0中不会写,项目比较急,我真的尽力了,希望各位帮帮忙,帮忙写出个完整的通过游标返回存储过程的事例,谢谢了
create table ACCOUNTID
(
INITID INTEGER,
STRACCOUNT VARCHAR2(10)
)
/
insert into ACCOUNTID values('1','aa')/ create or replace procedure test1(cname in varchar2,cdept in out varchar2,cid out resultData)
is
begin
open cid for
select * from ACCOUNTID;
cdept:='111';
end;
'vb调用代码'cn.Open "Provider=MSDAORA.1;Persist Security Info=False;" & _
"User ID=" & strUid & ";PassWord=" & strPWD & ";Data Source=" & strDatabase & ";" ' Set cmd = New ADODB.Command
cmd.ActiveConnection = cn cmd.CommandType = adCmdStoredProc
cmd.CommandText = "test1"
cmd.Parameters.Append cmd.CreateParameter("cname", adLongVarChar, adParamInput, 1000, " ")
cmd.Parameters.Append cmd.CreateParameter("cdept", adLongVarChar, adParamInputOutput, 1000, " ")
Set rs = cmd.Execute(Null, Null, adCmdStoredProc)
MsgBox rs.RecordCount适时错误'-2147217900'
ora-06550:line 1,column7:
object system.test1 is invalid
ora-06550:line1,column 7:
pl/sql:statement ignored在网上看过好多事例,可是就是不好用,网上有介绍说用游标返回结果集,可是在vb6.0中不会写,项目比较急,我真的尽力了,希望各位帮帮忙,帮忙写出个完整的通过游标返回存储过程的事例,谢谢了
as
begin open mycur for select * from product;
end;
--toad测试
declare
r_c sys_refcursor;
v_c product%rowtype;
begin
getproduct2(r_c);
loop
fetch r_c into v_c;
dbms_output.PUT_LINE(v_c.productid|| ' ' || v_c.productname);
exit when r_c%notfound;
end loop;
end;
参数为
cmd.Parameters.Add("mycur", System.Data.OracleClient.OracleType.Cursor).Direction = ParameterDirection.Output;