我想将oracle数据库的字符集从'WE8MSWIN1252'更改为'AL32UTF8'
我尝试从链接执行以下步骤(http://download.oracle.com/docs/cd/B10501_01/server.920/a96529/ch10.htm#1009580):
使用SHUTDOWN IMMEDIATE或SHUTDOWN NORMAL语句关闭数据库.执行数据库的完整备份,因为无法回滚ALTER DATABASE CHARACTER SET语句.填写以下声明:
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 AL32UTF8;
Run Code Online (Sandbox Code Playgroud)
但是当我执行上述语句时,我收到以下错误
SQL错误:ORA-12712:新字符集必须是旧字符集的超集
任何人都可以帮我解决这个问题.
最简单的方法:(需要关机):
首先,以 sysdba 身份连接:
sqplus / as sysdba
Run Code Online (Sandbox Code Playgroud)
接下来,执行以下脚本:
alter system set nls_length_semantics=CHAR scope=both;
shutdown;
startup restrict;
alter database character set INTERNAL_USE WE8ISO8859P1;
shutdown;
startup;
Run Code Online (Sandbox Code Playgroud)
它在 Oracle 12c 标准二版中对我有用
摘自:https : //www.elblogdelpibe.com/2015/05/como-solucionar-el-error-ora-12899.html(更新后的网址)
| 归档时间: |
|
| 查看次数: |
30682 次 |
| 最近记录: |