ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 求助SOS:奇怪的ORA-01722错误!!!

求助SOS:奇怪的ORA-01722错误!!!

原创 Linux操作系统 作者:xhailiang 时间:2009-08-20 17:05:03 0 删除 编辑
最近程式遇到ORA-01722错误,程式连到DB 运行时,出现ORA-01722错误,
程式是用C开发的,以OCI连接ORACLE
abc = :ln1 and nbr = :ln2 这两个栏位都是number 型。

请开发人员查看代码,开发人员反馈变量设定与ORACLE 表中字段的数据类型一致。
诡异的地方: 重启程式后还是处理同样的数据一切正常,当程式运行一天多此错误又会再次出现。

开始怀疑是ORACLE 隐式转换时出现问题,做了10046 12级的TRACE ,TRACE中跟踪到了错误,也看到了绑定的变量,
的确是存在转换的过程,number 变成了 char acdty=01
看到TRACE 文件中两个绑定的变量是字符型,而且值为乱码。

TRACE 结果如下:
BINDS #7:
kkscoacd
Bind#0
  oacdty=01 mxl=2000(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=00 fl2=0000 frm=01 csi=852 siz=4000 ff=0
  kxsbbbfp=110676908  bln=2000  avl=07  flg=05
  value="??<'T"
Bind#1
  oacdty=01 mxl=2000(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=00 fl2=0000 frm=01 csi=852 siz=0 ff=2000
  kxsbbbfp=1106770d8  bln=2000  avl=07  flg=01
value="? W%Z"
=====================
PARSING IN CURSOR #7 len=145 dep=0 uid=433 ct=3 lid=433 tim=36172152593649 hv=2952244578 ad='f8197970'
select abc,ccc from acct_t where abc = :ln1 and nbr = :ln2 END OF STMT
EXEC #7:c=0,e=4117,p=0,cr=2,cu=0,mis=1,r=0,dep=0,og=1,tim=36172152593645
ERROR #7:err=1722 tim=514067158
WAIT #7: nam='SQL*Net break/reset to client' ela= 9 driver id=1413697536 break?=1 p3=0 obj#=-1 tim=36172152593819

请大家帮忙分析下可能的原因!

[ 本帖最后由 xhailiang 于 2009-8-20 16:53 编辑 ]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/308563/viewspace-612771/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-02-17

  • 博文量
    270
  • 访问量
    418591