日期:2014-05-17  浏览次数:20777 次

ORACLE的ROWID问题
在C语言中拼接sql文如下
 strcpy(SQL ,“select columA from TableA where ROWID= CharTOROW(:RcordRowID)”)
但是有时候ROWID里会包含【+】【/】,这种情况下用生成的sql执行就会发生错误,取到的ROWID不正确,需要在CharTOROW两边加单引号才可以,问题是原来为什么不会发生这种错误呢?我试了原来数据库中没有【+】【/】的情况,我加了好多记录后发现新加的记录中含有这种情况,是不是数据量少的时候出现的几率小呢,
谁能解释原来不出错的原因啊,因为用了两年的系统,竟然有这个问题 上边让我调查为什么原来一直不出现这种问题呢


------解决方案--------------------

1;应该是你加记录时拷贝脚本出现问题,不信自己一条一条手写一下。

2;如果你的程序中加记录时没有出错,就直接电话ORACLE公司。
------解决方案--------------------
原因就是ROWID使用64位编码