1、情况描述
安装的oracle数据库,新建了一张表,插入一条中文数据乱码了
在linux服务器上查询乱码
中文乱码,这个时候插入中文数据,也会引起ORA-12899的错误哦
ERROR at line 1:
ORA-12899: value too large for column "OATUSER"."TEST"."NM" (actual: 18, maximum: 10)
2、修改环境变量
#sqlplus 连接查询言语言
select userenv('LANGUAGE') From Dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
#增加NLS_LANG环境变量
echo 'export NLS_LANG="AMERICAN_AMERICA.UTF8"'>>/etc/profile
#生效
source /etc/profile
修改完后切换oralce用户再次查询 中文不再乱码
如果是window客户端,那么同样在winodws上增加环境变量NLS_LANG
这里补充一行,日期显示按照常见的yyyy-mm-dd 这种形式来,这样查询出来的数据就方便阅读了;乱码问题解决了在插入数据就不会报错 ora12899了
------oralce用户环境变量
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_DATE_FORMAT