首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用经典asp从oracle 11g存储过程返回结果集

使用经典asp从oracle 11g存储过程返回结果集
EN

Stack Overflow用户
提问于 2012-11-21 14:01:19
回答 1查看 2.6K关注 0票数 4

我们最近从Oracle10g升级到11g,现在微软供应商MSDAORA.1无法工作。我已更改为使用OraOLEDB.Oracle提供程序,但现在返回结果集的存储过程之一也无法工作。

SYSADM.lss_pkg_catalog_pages.get_catalog_pages(?,旧调用: strSQL = "{call {resultset 100,lss_media_cd,lss_page_num}“}

因此,我一直试图将其更改为返回参数值,但我始终得到以下错误:Error: -2147217900 - ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'GET_CATALOG_XXX' ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'GET_CATALOG_XXX' ORA-06550: line 1, column 7: PL/SQL: Statement ignored

我猜想这是因为我的输出参数的数据类型,但似乎找不到合适的类型来使用。

这里是我使用的代码:

代码语言:javascript
运行
复制
dim con, rst1, prm1, prm2, prm3, prm4

set cmCmd = Server.CreateObject("ADODB.Command")
set con = Server.CreateObject("ADODB.Connection")
Set Rst1 = Server.CreateObject("ADODB.Recordset")

Con.Provider = "OraOLEDB.Oracle"
Con.ConnectionString = "Data Source=XXXXXX;Password=XXXXXX;User ID=XXXXX;Persist Security Info=True"
Con.Open

cmCmd.ActiveConnection = Con
cmCmd.CommandType = adCmdText

Set Prm1 = cmCmd.CreateParameter("PRODUCT_ID", adVarChar, adParamInput, 20, strTempProductID)
cmCmd.Parameters.Append Prm1                                

Set Prm2 = cmCmd.CreateParameter("LSS_MEDIA_XX", adVarWChar, adParamOutput, 100) 
cmCmd.Parameters.Append Prm2                

Set Prm3 = cmCmd.CreateParameter("LSS_PAGE_XXX", adVarWChar, adParamOutput, 100) 
cmCmd.Parameters.Append Prm3 

strSql = "{ CALL SYSADM.lss_pkg_catalog_pages.get_catalog_pages(?, ?, ?) }" 

cmCmd.CommandText = strSql
cmCmd.Execute 

我还有其他直接的SQL和其他存储过程调用,它们可以很好地返回数据,只是这个存储过程不能正常工作。

编辑:i被问及在存储过程中的类型声明:

代码语言:javascript
运行
复制
TYPE t_lss_media_XXX is TABLE of ps_lss_cat_XXXX.lss_XXX%TYPE
          INDEX BY BINARY_INTEGER;

TYPE t_lss_page_XXX is TABLE of ps_lss_cat_XXXX.lss_XXXX%TYPE
           INDEX BY BINARY_INTEGER;

如果有更多的信息需要从商店的程序,让我知道,我可以张贴它。

如有任何建议,将不胜感激。

谢谢罗伯特

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-06 13:16:23

根据@searchAnResQ在评论中的建议,我让我们的oracle团队重做存储过程,以返回一个Ref游标,这似乎很有效。我发现我们正在使用的ODAC版本不支持返回表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13494938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档