请各位仁兄帮小妹BUG一下,哪出了问题?
在ASP里调ORACLE包里的存储过程的问题:
包定义如下:
CREATE OR REPLACE PACKAGE nb_supFind
AS
TYPE myrctype IS REF CURSOR;
PROCEDURE RecSel(p_StartDate IN VIEW_NB_TYGL.YY%TYPE,
p_EndDate IN VIEW_NB_TYGL.YY%TYPE,
p_Region IN VARCHAR2,
p_flag IN NUMBER,
p_col IN VARCHAR2,
p_table IN VARCHAR2,
v_ADDV OUT myrctype
);
END nb_supFind;
CREATE OR REPLACE PACKAGE BODY nb_supFind
AS
PROCEDURE RecSel(
p_StartDate IN VIEW_NB_TYGL.YY%TYPE,
p_EndDate IN VIEW_NB_TYGL.YY%TYPE,
p_Region IN VARCHAR2, --分区内容
p_flag IN NUMBER, --标识是行政区/二级区/三级区
p_col IN VARCHAR2, --选中项目名
p_table IN VARCHAR2, --操作表名
v_Result OUT myrctype --作为输出的游标
) IS
strsql VARCHAR2(500);
BEGIN
IF p_flag = 1 then
if p_Region = '' then
strsql:='SELECT ADDVNM,YY,SUM('||p_col||')
FROM '||p_table||
'WHERE YY <= '||p_EndDate||' AND YY>='|| p_StartDate||' AND ADDVNM = '||p_Region||' GROUP BY ADDVNM,YY';
else
strsql:='SELECT ADDVNM,YY,SUM('||p_col||')
FROM '||p_table||
'WHERE YY <= '||p_EndDate||' AND YY>='|| p_StartDate||'
GROUP BY ADDVNM,YY';
end if;
--打开动态游标
OPEN v_ADDV FOR strsql;
END IF;
END RecSel;
END nb_supFind;
已编译通过,无问题!
在ASP中调用:
Set CMD=Server.CreateObject("ADODB.Command")
CMD.ActiveConnection = Session("conn")
CMD.CommandType = adCmdText
CMD.CommandTimeout = 0
CMD.Prepared = true
CMD.CommandText = "{call nb_supFind.RecSel(?,?,?,?,?,?,?,{resultset 100,v_ADDV})}"
'输入变量赋值
CMD.Parameters.Append CMD.CreateParameter(p_StartDate,adVarChar,adParamInput,4,StartYr)'开始年份
CMD.Parameters.Append CMD.CreateParameter(p_EndDate,adVarChar,adParamInput,4,EndYr) '结束年份
CMD.Parameters.Append CMD.CreateParameter(p_Region,adVarChar,adParamInput,20,Addv) '行政区名
CMD.Parameters.Append CMD.CreateParameter(p_flag,adInteger,adParamInput,,1) '标识分区
CMD.Parameters.Append CMD.CreateParameter(p_col,adVarChar,adParamInput,100,Item) '选中项目名
CMD.Parameters.Append CMD.CreateParameter(p_table,adVarChar,adParamInput,50,Tname) '得到表名
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 3
set rs.Source = CMD
rs.Open()
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
rs.Open()错
不知道是我包里有错,还是ASP里调用错?苦恼:(