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
不知道“?”处参数形势如何写了。紧急求助!
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
不知道“?”处参数形势如何写了。紧急求助!
解决方案 »
- VB做的程序在运行时最小化,操作其它界面,,当通过串口送来一个电压时,如何让它自动最大化并显示在最顶层,优先于其它界面显示
- DataGrid有没有什么属性设置,允许选中整个表格,复制到一个文本文件中。
- 各位大大都进来看看吧~!(急~!在线等)
- 请大家帮忙看一下,为什么 DBEngine.CompactDatabase Location, strTempFile 不执行?
- 大家近来看看!!
- 50分的简单问题:如何在菜单项前添加图标?
- 怎样在imagebox 上画线?来者有分|!!!!!!! waiting online!!
- Oracle数据库操作问题
- 关于使用leftjoin 有点字段为空后ADODB.Recordset无法读取所有记录
- 拜求大神优化SQL语句
- 如何获取任一指定运行程序的进程ID
- 如何把一组图片转成视频?
不了啊学习中
另外,我将过程修改为存储过程,却又发现在SQL PLUS下正确执行得建表等工作,写在过程中,发现调用过程时提示没有权限。