数据库
首页 > 数据库> > php – 为什么我收到“数据转换或数据映射错误.在简单的DB2 select语句中,SQLCODE = -802“?

php – 为什么我收到“数据转换或数据映射错误.在简单的DB2 select语句中,SQLCODE = -802“?

作者:互联网

我正在使用PHP访问IBM i(AS400)上的DB2信息.

使用此代码:

$query = "SELECT * FROM QS36F.MYTABLE WHERE MYFIELD=120006";
$result = db2_prepare($conn, $query);
db2_execute($result);

$i=0;
while($row = db2_fetch_assoc($result) or die(db2_stmt_errormsg())){
    $i++;
    print "Row " . $i . " successful<br />";
}

我明白了:

SELECT * FROM QS36F.MYTABLE WHERE MYFIELD=120006

Row 1 successful
Row 2 successful
Row 3 successful
Row 4 successful
Data conversion or data mapping error. SQLCODE=-802

应该有超过4个结果.
为什么会发生这种错误?

更多细节:

>同样的错误似乎发生在我在MYFIELD中搜索的任何值,尽管它可能是在不同数量的成功结果之后
> MYFIELD是NUMERIC(7,0)
>我可以搜索表中的其他字段(包括数字字段),它工作正常.

解决方法:

表中存在无效的十进制数据.有空白而不是零.我将零移动到那些空白中并解决了问题

标签:php,db2,ibm-midrange
来源: https://codeday.me/bug/20190621/1255945.html