Win*_*ter 3 sql database oracle plsql sql-navigator
我正在尝试执行此查询:
select *
from gi_todo_isim
WHERE d_insercao >= '04-JUL-13'
AND d_insercao <= '25-JUL-13'
Run Code Online (Sandbox Code Playgroud)
但是,这我回来这个错误:
ORA-01406 fetched column value was truncated
Run Code Online (Sandbox Code Playgroud)
如果我尝试计算存在多少列:
select count(*)
from gi_todo_isim
WHERE d_insercao >= '04-JUL-13'
AND d_insercao <= '25-JUL-13'
Run Code Online (Sandbox Code Playgroud)
答案是1661597很大的。任何人都可以提供任何解决方案如何执行此查询?
Oracle文档指出了有关错误代码的信息:
“原因:在宿主语言程序中,强制执行FETCH操作以截断字符串。此列的程序缓冲区不足以容纳整个字符串。从提取中获取的游标返回代码为+3。
行动:增加列缓冲区以容纳最大的列值或执行其他适当的处理。当强制FETCH截断宿主语言程序中的列名或字符串时,抛出ORA-01406。ORA-01406是由列的程序缓冲区引起的,该缓冲区的大小不足以完全容纳字符串,而游标的返回代码为+3。”
因此,很有可能定义的变量的大小小于查询针对特定列返回的大小。例如,您可能正在将varchar2(100)值返回到大小为50或类似大小的缓冲区中。由于您没有显示主机代码,因此无法确定确切的违规字段。