sql - 如何解决错误 : ORA-01406 fetched column value was truncated?

标签 sql database oracle plsql sql-navigator

我正在尝试执行此查询:

select * 
  from gi_todo_isim 
 WHERE d_insercao >= '04-JUL-13' 
   AND d_insercao <= '25-JUL-13'

但是我得到了这个错误:

ORA-01406 fetched column value was truncated

如果我尝试计算存在的列数:

select count(*) 
  from gi_todo_isim 
 WHERE d_insercao >= '04-JUL-13' 
   AND d_insercao <= '25-JUL-13'

答案是 1661597,这是一个很大的数字。任何人都可以提供任何解决方案如何执行此查询?

最佳答案

Oracle 文档是这样描述错误代码的:

“原因:在宿主语言程序中,FETCH 操作被强制截断字符串。该列的程序缓冲区不够大,无法包含整个字符串。游标返回代码为 +3 .

操作:增加列缓冲区以保存最大的列值或执行其他适当的处理。 当 FETCH 被强制截断宿主语言程序中的列名或字符串时,会抛出 ORA-01406。 ORA-01406 是由于列的程序缓冲区不够大,无法完整保存字符串,而游标返回码为 +3。"

因此,很可能您定义了一个变量,该变量的大小小于查询为特定列返回的变量。例如,您可能将 varchar2(100) 值返回到大小为 50 或类似的缓冲区。由于您没有显示主机代码,因此无法确定确切的违规字段。

关于sql - 如何解决错误 : ORA-01406 fetched column value was truncated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18190584/

相关文章:

mysql - sql错误: Unknown column in 'field list' on insert

MySql语句根据中间表中的列进行选择

ruby-on-rails - 我完成 rake db :migrate? 后如何在 ROR 3.0 中添加新列

database - 架构 Web 服务器、应用程序服务器和数据库服务器

sql-server - 如何使用Spring XD从oracle和sql server加载数据到HAWQ

sql - 什么是 Oracle 中的级别伪列,谁能解释一下?

当使用 crontab 计划脚本时,Oracle SQLPlus 假脱机命令不起作用?

sql - sqlite3 是否支持触发器自动更新 'updated_on' 日期时间字段?

MySQL语句获取最大ID的最小值

database - 如何在 Symfony 2 中安全地对写操作进行单元测试?