有用过OCITransStart()的吗?

yythinking 2011-10-28 09:20:56
直接试了OCI文档里的例子,

XID gxid;

gxid.formatID = 1000; /* format id = 1000 */
gxid.gtrid_length = 3; /* gtrid = 123 */
gxid.data[0] = 1; gxid.data[1] = 2; gxid.data[2] = 3;
gxid.bqual_length = 1; /* bqual = 1 */
gxid.data[3] = 1;

retCode = OCIAttrSet((dvoid *)txnhp1, OCI_HTYPE_TRANS, (dvoid *)&gxid, sizeof(XID), OCI_ATTR_XID, errhp);

retCode = OCITransStart(svchp, errhp, 60, OCI_TRANS_NEW);

OCITransStart failed.
mgs: ORA-00162: external dbid length 0 is greater than maximum (16)
. code: 162.

有人知道哪错了吗? 其它的操作都能正常工作,就是开启事务这报错.
...全文
119 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yythinking 2011-10-28
  • 打赏
  • 举报
回复
传入的名字应该不会超长,因为OCITransStart()之前之后的OCI函数都能正常工作,象OCITransStart()之后的prepare()/execute()都能工作,数据库里数据都能修改.就是OCITransStart()报错.

mgs: ORA-00162: external dbid length 0 is greater than maximum (16). code: 162.
这里长度0不知道哪来的,如果长了也应该是大于16呀?
yixilan 2011-10-28
  • 打赏
  • 举报
回复
你传入的DB的名字在哪里?
DB名字是什么?

看这句话的翻译是:
外面的DB长度,比最大值16要大。

17,078

社区成员

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

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