ORA-01401: 插入的值对于列过大

为什么在Oracle9i里,我定义的字段类型为varchar2(50),为什么只能存16个汉字呢?並且系統會提示:ORA-01401: 插入的值对于列过大
解決辦法:(1)注册表里:HKEY_LOCAL_MACHINE--SOFTWARE--ORACLE-HOME0--NSL_LANG的值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK (2)查了数据库:select * from props$ (3) 查询了数据库视图:select * from V$NLS_PARAMETERS (4)对系统表执行以下操作: update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET' update props$ set value$='ZHS16GBK' where name='NLS_NCHAR_CHARACTERSET' (5)服务器重新启动对于新建的表,一切正常;但是,原来汉字命名的表无法识别。原来表里有汉字也无法识别。 (6) 准备解决方法:恢复原来的配置,一、冷备份数据库;二、导出原来的数据库;三、重新执行步骤(4);四、导入原来的数据,或重冷备份数据里恢复。 OK

 

你可能感兴趣的:(oracle)