Sql 如何解决错误:ORA-01406获取的列值被截断?

Sql 如何解决错误:ORA-01406获取的列值被截断?,sql,database,oracle,plsql,sql-navigator,Sql,Database,Oracle,Plsql,Sql Navigator,我正在尝试执行此查询: select * from gi_todo_isim WHERE d_insercao >= '04-JUL-13' AND d_insercao <= '25-JUL-13' 如果我尝试计算存在多少列: select count(*) from gi_todo_isim WHERE d_insercao >= '04-JUL-13' AND d_insercao <= '25-JUL-13' 选择计数(*)

我正在尝试执行此查询:

select * 
  from gi_todo_isim 
 WHERE d_insercao >= '04-JUL-13' 
   AND d_insercao <= '25-JUL-13'
如果我尝试计算存在多少列:

select count(*) 
  from gi_todo_isim 
 WHERE d_insercao >= '04-JUL-13' 
   AND d_insercao <= '25-JUL-13'
选择计数(*)
从gi_todo_isim
其中d_inserco>='04-JUL-13'

而d_insercoOracle文档说明了以下有关错误代码的信息:

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

操作:增加列缓冲区以容纳最大的列值或执行其他适当的处理。 ORA-01406是在强制提取截断主机语言程序中的列名或字符串时引发的。ORA-01406是由于列的程序缓冲区不够大,无法容纳整个字符串,而光标返回代码为+3。”


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

请显示表定义。您使用什么语言/框架来执行查询和获取结果?请同时显示该代码。
select count(*) 
  from gi_todo_isim 
 WHERE d_insercao >= '04-JUL-13' 
   AND d_insercao <= '25-JUL-13'