测试数据库的NLS_NCHAR_CHARACTERSET和正式环境不一致,需要由UTF8修改为AL16UTF16。
1、停数据库
SQL> alter system checkpoint;
System altered.
SQL> alter system checkpoint;
System altered.
SQL> alter system switch logfile;
System altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
2、启动数据库
SQL> STARTUP MOUNT EXCLUSIVE;
ORACLE instance started.
Total System Global Area 838860800 bytes
Fixed Size 2024536 bytes
Variable Size 192940968 bytes
Database Buffers 637534208 bytes
Redo Buffers 6361088 bytes
Database mounted.
SQL> alter system enable restricted session;
System altered.
SQL> alter system set job_queue_processes=0;
System altered.
SQL> alter system set aq_tm_processes=0;
System altered.
SQL> alter database open;
Database altered.
SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;
Database altered.
注意:
1)这样修改会影响数据库中定义了Nclob、NVARCHAR2等大字段的表,会出现乱码。需要重新导入表,当然在修改前要备份相关表。
2)如果没有大对象,在使用过程中进行语言转换没有什么影响,(切记设定的字符集必须是ORACLE支持,不然不能start)
若直接运行
ALTER DATABASE NATIONAL CHARACTER SET AL16UTF16;
也可以,但是可能会出现‘ORA-12717: Cannot ALTER DATABASE NATIONAL CHARACTER SET when
NCLOB data exists’ 这样的提示信息
报错信息如下:
Wed May 30 16:25:58 2012
alter database national character set AL16UTF16
Wed May 30 16:25:58 2012
XDB.XDB$NMSPC_ID (NMSPCURI) - NVARCHAR2 populated
ORA-12717 signalled during: alter database national character set AL16UTF16...
3、在停数据库时hang住了,没有办法只有直接abort了再startup。
SQL> shutdown immediate;
ORA-03113: end-of-file on communication channel
SQL> exit
SQL> connect /as sysdba
Connected to an idle instance.
SQL> shutdown abort;
ORACLE instance shut down.
SQL> exit
相关推荐
1. 确认数据库的全局字符集(NLS_CHARACTERSET)和国家字符集(NLS_NCHAR_CHARACTERSET)。 2. 检查问题表的字符集设置,确保与数据库全局字符集一致。 3. 确认客户端的字符集设置,如SQL*Plus、PL/SQL Developer等...
### Oracle字符集的查看与修改详解 #### 一、Oracle字符集概述 Oracle数据库系统支持多种字符集,以便处理各种语言和地区的信息。字符集的选择对于数据的存储和处理至关重要,尤其是在全球化环境中,需要处理多种...
例如,`NLS_CHARACTERSET` 参数显示了数据库的默认字符集,这里是 `ZHS16GBK`,表明这是一个支持中文的字符集。`NLS_NCHAR_CHARACTERSET` 参数则表示 National Character Set,通常用于存储双字节字符,如 Unicode ...
在进行字符集修改之前,请确保满足以下前提条件: 1. **有足够的权限**:必须具备sysdba权限才能执行这些操作。 2. **备份数据库**:为避免意外情况导致数据丢失,在进行任何更改之前建议对整个数据库进行完整备份...
在ORACLE数据库中,字符集主要分为两大类:NLS_CHARACTERSET和NLS_NCHAR_CHARACTERSET。 1. **NLS_CHARACTERSET**:用于存储常规字符数据(如VARCHAR2类型)。 2. **NLS_NCHAR_CHARACTERSET**:用于存储宽字符数据...
- **NLS_NCHAR_CHARACTERSET**:指定国家字符集。 #### 2.2 查看当前字符集设置 可以通过查询`V$NLS_PARAMETERS`视图来查看当前数据库的字符集设置: ```sql SELECT * FROM V$NLS_PARAMETERS; ``` 此外,还可以...
- `NLS_NCHAR_CHARACTERSET` 参数指定了国家字符集。 - 通过这个命令,我们可以了解存储NCHAR、NVARCHAR2等类型列所使用的字符集。 **5. 查看客户端字符集:** ```sql SELECT * FROM nls_session_parameters ...
其中,`NLS_CHARACTERSET`参数尤为重要,它定义了数据库使用的字符集。 ##### Step 2: 修改Windows注册表中的NLS_LANG值 如果是在Windows环境下使用Oracle,并且遇到了ORA-01460错误,那么可以尝试修改注册表中的`...
通过理解 NLS_LANG 参数及其组成部分、字符集的不同类型以及如何查询与修改字符集,可以更好地管理和维护 Oracle 数据库。在实际应用中,根据具体的业务需求选择合适的字符集配置,并采取适当的措施来避免因字符集...
- 对于已存在的数据库,可能需要修改`NLS_CHARACTERSET`和`NLS_NCHAR_CHARACTERSET`参数。但这通常需要停服,且可能有数据丢失风险。 8. **配置网络字符集**: - Oracle的监听器(listener.ora)也需要配置正确的...
21. **NLS_NCHAR_CHARACTERSET**:返回宽字符集。 22. **NLS_NUMERIC_CHARACTERS**:返回数字字符。 23. **NLS_TERRITORY**:返回区域设置。 24. **OS_USER**:返回操作系统的用户名。 25. **PROGRAM**:返回...
- **修改数据库字符集**:更改数据库字符集是一个复杂的过程,通常需要通过备份和恢复的方式完成,或使用`ALTER DATABASE CHARACTERSET`命令,但在某些情况下(如从`US7ASCII`转换到`UTF8`)可能需要额外的步骤和...
这个查询用于获取数据库的NLS_NCHAR_CHARACTERSET,即国家字符集,适用于Unicode字符的存储。 2. 同样的,另外两种等价的查询方式也适用于获取国家字符集。 除此之外,我们还提到了查询Oracle服务器端的字符集,...
在Oracle数据库中,有两个关键的字符集概念:数据库字符集(服务器端字符集)和国家字符集(NLS_NCHAR_CHARACTERSET)。数据库字符集在数据库创建时确定,通常不可更改,用于存储CHAR、VARCHAR2、CLOB、LONG等数据...
我们使用了 PROPS$ 表来查看字符集信息,并检查了 NLS_CHARACTERSET 和 NLS_NCHAR_CHARACTERSET 两个参数的值。然后,我们将目标 PDB 字符集设置为 UTF8,但是建议在生产环境中保持 PDB 字符集与 CDB 一致。 在迁移...
### 修改Oracle字符集 在处理Oracle数据库时,经常会遇到与字符集相关的问题,尤其是在需要更改数据库的字符集时。本文将详细介绍如何通过PL/SQL Developer或其他Oracle管理工具来查询及修改Oracle数据库的字符集。...
- **Oracle 8i内部字符设置**:以`internal`用户登录`sqlplus`,更新系统表`props$`中的`NLS_CHARACTERSET`和`NLS_NCHAR_CHARACTERSET`字段值为`US7ASCII`,然后重启Oracle 8i以应用更改。 5. **初始化数据字典**...
NLS_CHARACTERSET:ZHS16GBK是当前数据库的字符集。 我们再来查看客户端的字符集信息: 客户端字符集的参数NLS_LANG=_< territory >. language:指定oracle消息使用的语言,日期中日和月的显示。 Territory:指定...
本文将深入探讨Oracle字符集的查看与修改方法。 一、Oracle字符集概念 Oracle字符集由三部分组成:语言、地域和字符集。其中,字符集部分直接影响数据的编码方式。NLS_LANG环境变量是配置Oracle字符集的关键,其...