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

在Oracle9i中,遇到定义为varchar2(50)的字段只能存储16个汉字的问题,并收到ORA-01401错误提示。本文探讨了此问题的原因在于字符集设置,并提供了解决方案,包括更新字符集设置、重启服务等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么在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

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值