调用oracle的过程,有个对应游标的参数不知如何书写,紧急求助!
oracle的包和包体分别如下,确定是没有问题的。
create or replace package pkg_test
AS
TYPE myrctype IS REF CURSOR;
PROCEDURE gp_findusertable (v_userid in varchar2,i_out out int , p_rc OUT myrctype);
END pkg_test;
/
create or replace
..
AS
PROCEDURE gp_findusertable (v_userid in varchar2, i_out out int, p_rc OUT myrctype)
IS
sqlstr VARCHAR2 (500);
sqlstr2 VARCHAR2(100);
num int;
BEGIN
i_out := 0;
sqlstr :=
'select table_name from user_tables where table_name=:' + v_userid;
OPEN p_rc FOR sqlstr;
i_out := 0;
num := 0;
loop
exit when p_rc%NOTFOUND;
num := num+1;
end loop;
i_out := 1;
sqlstr2 := 'create table ' + v_userid + '(userid varchar2(6))';
execute immediate sqlstr2;
exception
when no_data_found then
i_out := 0;
raise_application_error(-20100, 'cannot find the id');
END gp_findusertable;
END pkg_test;
/
在vb中
Dim paraLoginID As ADODB.Parameter '输入参数:当前检查的用户ID
Dim paraState As ADODB.Parameter '输出参数:当前检查用户存在情况
Dim paraCur As ADODB.Parameter '输出参数:控制游标
ConnState
Set Cmd = Nothing '必须清空原来的参数
Cmd.ActiveConnection = Conn '连接SERVER
Set paraLoginID = Cmd.CreateParameter("LoginID", adChar, adParamInput, 50, CurLoginID)
Cmd.Parameters.Append paraLoginID
Set paraState = Cmd.CreateParameter("State", adInteger, adParamOutput)
Cmd.Parameters.Append paraState
Set paraCur = Cmd.CreateParameter("Cur", ????, adParamOutput)
Cmd.Parameters.Append paraCur
Cmd.CommandType = adCmdStoredProc
Cmd.CommandText = "pkg_test.gp_findusertable"
Cmd.Execute
不知道“?”处参数形势如何写了。紧急求助!