ORA-01406错误获取使用OCI值时(ora-01406 Error when fetching

2019-10-17 15:19发布

此取其中具有50最大长度值时,向其中只能容纳30个字符的缓冲器发生。

我已经看过了错误,并发现了一个可能的解决方案,这是扩大其值绑定到缓冲区的大小。

问题是,这仅发生在我们的一些系统的,而不是别人。 请问Oracle版本有什么关系呢? 如果是的话,在这个错误已经被改变的版本?

我们使用的Oracle版本是10.2.0.1和10.2.0.3

Answer 1:

在这个问题中列出的错误已被固定在10.2.0.3和误差仅在此之前,Oracle版本给出。 编辑:同样的问题主要出现在甲骨文10.2.0.4。 我们仍然在寻找这

EDIT2:当定义的游标在OCI CHAR / VARCHAR列(我们使用用于该目的的包装器),其被结合到一列中的字符串的大小必须大于该列的最大宽度的至少一个。

如列名:U_NAME类型:VARCHAR(30)

1.炭zName [30]; pCursor->定义(zName,30); //如果列有30个字符的值,这将崩溃

2.炭zName [31]; pCursor->定义(zName,30); //如果列有30个字符的值,这将崩溃

3.炭zName [31]; pCursor->定义(zName,31); //正确。 会不会崩溃任何价值



Answer 2:

你在你的代码中的错误,因为它仅允许30个字符时,可能会收到50.为什么不解决它,而不是担心甲骨文版本的bug出现问题的原因?



文章来源: ora-01406 Error when fetching values using OCI
标签: oracle oci