请问存储过程中返回记录集包含BLOB 类型怎么处理?

littleM 2003-12-12 10:14:05
我在vb中使用ado调用,提示数据类型不被支持,请问大家是怎么处理的?

代码如下(其中,pictureInfo为blob类型):
CREATE OR REPLACE PROCEDURE SA.GETCARDDETAILCELLSRS(cardID IN CHAR DEFAULT NULL,
cardType IN NUMBER DEFAULT NULL,
iniType IN NUMBER DEFAULT NULL,
RC1 IN OUT Omwb_emulation.globalPkg.RCT1) AS
cardID_ CHAR(9) := cardID;
cardType_ NUMBER(10, 0) := cardType;
iniType_ NUMBER(10, 0) := iniType;
StoO_selcnt INTEGER;
StoO_error INTEGER;
StoO_rowcnt INTEGER;
StoO_crowcnt INTEGER := 0;
StoO_fetchstatus INTEGER := 0;
StoO_errmsg VARCHAR2(255);
StoO_sqlstatus INTEGER;
BEGIN
OPEN RC1 FOR
SELECT a.*, b.pictureInfo
FROM sa.tb_CardDetailCell_TempDesign a, sa.tb_picture_info b
WHERE (a.pictureindex = b.pictureindex(+)) AND
(a.cardID = to_number(GETCARDDETAILCELLSRS.cardID_));

END GETCARDDETAILCELLSRS;

vb的调用如下:
Dim mcmd As New ADODB.Command
Dim mPara As New ADODB.Parameter
mcmd.ActiveConnection = cn
mcmd.CommandType = adCmdText
mcmd.CommandText = "{call sa.GetCardDetailCellsRs(?,?,?,{resultset 0,RC1})}"
With mcmd
Set mPara = .CreateParameter(, adChar, adParamInput, 9, m_CardID)
.Parameters.Append mPara
Set mPara = .CreateParameter(, adInteger, adParamInput, , m_cardType)
.Parameters.Append mPara
Set mPara = .CreateParameter(, adInteger, adParamInput, , m_iniType)
.Parameters.Append mPara
End With
Set trsDetailCellsRows.Source = mcmd
trsDetailCellsRows.Open
...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-12-13
  • 打赏
  • 举报
回复
参考以下文章:
http://www.fawcette.com/china/print.aspx?TotalPage=6&ID=76
tomguan 2003-12-13
  • 打赏
  • 举报
回复
我使用java开发,在遇到BLOB时时单独处理,和其他的数据分开。我看很多人都是这么做的。
hpretty 2003-12-13
  • 打赏
  • 举报
回复
你用Pl/Sql Developer 调试一下先,看存储过程能不能正确执行,如果不能那就不用往下做,
想其它办法吧。如果支持的话就再看是Ado不支持还是其它原因,调试过程的话,就直接在
对象上点右键,然后选择Test,然后再就是在下面填参数。点上面的运行就可以了!
chanet 2003-12-12
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2435/2435782.xml?temp=.4545862
qfsb_p 2003-12-12
  • 打赏
  • 举报
回复
你看考下这些文章
http://www.21tx.com/school/database/wz/000140810060509.htm

http://expert.csdn.net/Expert/topic/2435/2435782.xml?temp=.7885706
第二个帖子比较全

要不在论坛搜索一下,应该会有收获。

good luck
beckhambobo 2003-12-12
  • 打赏
  • 举报
回复
ado不支持大对象类型,(建义使用oo4o)
sql查询语句使用这样:
select dbms_lob.substr(col_lob) from tabname
littleM 2003-12-12
  • 打赏
  • 举报
回复
谢谢qfsb_p(我心飞翔) ,你给出的贴子非常精彩。

不过我的问题主要在于:存储过程是否可以返回带有blob字段类型的记录集合呢?

我在vb中使用ado调用,提示数据类型不被支持,此时记录集还没有形成到rs,所以还没有机会采用贴子中的方法,存储到本地。

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧