ORA-12899或者数据库数据乱码解决方法。修改oracle数据库字符集
按照其他的博客修改字体啥的没用可以试试
当插入数据报ORA-12899: value too large for column 通常需要修改数据库字符集
首先连接上数据库(弄了docker oracle_11g 镜像不太熟练,具体操作看我之前发的博客)
查看oracle字符集
SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
(当前的字符集为utf-8需要设置为ZHS16GBK)
以下命令照着敲完就完事了
sqlplus /nolog
conn /as sysdba
shutdown immediate
startup mount
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
alter database open;
ALTER DATABASE CHARACTER SET ZHS16GBK;
----------------
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
-----------------
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
SHUTDOWN IMMEDIATE;
startup
然后再查看oracle字符集修改成功了
再对数据库进行操作就没问题了