日期:2014-05-17  浏览次数:22195 次

ORA-12899: value too large for column
有两台电脑,一个是windows2008 32bit的,安装了oracle 11.2.0.3的32bit的
另一台电脑是windows2008R2 64bit的,安装了oracle client 11.2.0.3的32bit的
这两者工作的很好

现在,有一个第三台电脑windows2008R2 64bit的,安装了oracle client 11.2.0.1
程序运行却发生了如下的错误,我确定第二台电脑和第三胎电脑仅仅客户端版本不一样,其他都一样
 
ORA-12899: value too large for column "user1"."tableName"."fieldName" (actual: 2001, maximum: 2000)
 
什么原因?怎么修改?
 谢谢

------解决方案--------------------
把客户端的字符集 改成和和服务器上一样,在注册表里改 
------解决方案--------------------
[oracle@10gR2 ~ $]oerr ora 12899
12899, 00000, "value too large for column %s (actual: %s, maximum: %s)"
// *Cause: An attempt was made to insert or update a column with a value
//         which is too wide for the width of the destination column.
//         The name of the column is given, along with the actual width
//         of the value, and the maximum allowed width of the column.
//         Note that widths are reported in characters if character length
//         semantics are in effect for the column, otherwise widths are
//         reported in bytes.
// *Action: Examine the SQL statement for correctness.  Check source
//          and destination column data types.
//          Either make the destination column wider, or use a subset
//          of the source column (i.e. use substring).

按上面的步骤检查一下
1)Examine the SQL statement for correctness
2)Check source and destination column data types
3)Either make the destination column wider, or use a subset of the source column 
------解决方案--------------------
应该是字符集的问题。
------解决方案--------------------
引用:
引用:
把客户端的字符集 改成和和服务器上一样,在注册表里改
我在注册表里面察看过了,这两个客户端的字符集是一样的,很奇怪啊


你的sql语句发出来看看 
是不是客户端程序用了in()操作导致的
------解决方案--------------------
哎!悲剧啊.....