为什么我得到“数据转换或数据映射错误。 SQLCODE = -802“在一个简单的DB2 select语句上? [英] Why am I getting "Data conversion or data mapping error. SQLCODE=-802" on a simple DB2 select statement?
问题描述
使用以下代码:
$ 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 ++;
打印行。 $ i。 成功< br />;
}
我得到:
< blockquote>
SELECT * FROM QS36F.MYTABLE WHERE MYFIELD = 120006
第1行成功
第2行成功/>
第3行成功
第4行成功
数据转换或数据映射错误。 SQLCODE = -802
应该有超过4个结果。
为什么会出现此错误?
更多详细信息:
- 同样的错误似乎发生在MYFIELD搜索的任何值上,尽管它可能是在不同数量的成功结果之后。
- MYFIELD是NUMERIC(7,0)
- 我可以搜索表中的其他字段(包括数字),并且可以正常工作。
表中有无效的十进制数据。有空白而不是零。我将零移动到这些空白处,并修复了问题
I am accessing DB2 information on an IBM i (AS400) with PHP.
With this code:
$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 />";
}
I get:
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
There should be more than 4 results. Why might this error be occurring?
More details:
- This same error seems to happen on any value I search for in MYFIELD although it may be after a different number of successful results
- MYFIELD is NUMERIC(7,0)
- I can search other fields in the table(including numeric ones) and it works fine.
There was invalid decimal data in the table. There were blanks instead of zeros. I moved zeros into those blanks and that fixed the problem
这篇关于为什么我得到“数据转换或数据映射错误。 SQLCODE = -802“在一个简单的DB2 select语句上?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!