因为数据库的字符使用的是WE8ISO8859P1,不支持中文显示,故要换成AL32UTF8
1.在更改数据库字符集之前先备份一下数据
exp test/test@orcl file=/usr/local/20110408.dmp
2.查看当前数据库的字符集,其来源于props$,是表示数据库的字符集
select * from nls_database_parameters
select userenv('language') from dual
其中NLS_CHARACTERSET 为server端字符集
NLS_LANGUAGE 为 server端字符显示形式
3.修改数据库服务端字符集(WE8ISO8859P1 --> AL32UTF8)
首要条件是:将数据库启动到RESTRICTED模式下做字符集更改
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 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 CHARACTER SET AL32UTF8;
ALTER DATABASE CHARACTER SET AL32UTF8
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;
Database altered.
SQL> select * from v$nls_parameters;
重启检查是否更改完成:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> select * from v$nls_parameters;
4.数据库服务端字符集更改完成,但在clob字段里出现乱码情况。
解决办法:把20110408.dmp中有clob表导入已变更字符集的oralce数据库中,
clob是没有乱码的,再使用update语句把clob字段数据更新至原数据库的clob字段
分享到:
相关推荐
Oracle数据库中的字符集主要分为服务端字符集和服务端字符集: - **服务端字符集**:指定了数据在数据库内部的存储格式。例如,一个汉字在单字节字符集(如US7ASCII)中占用2个字节,而在多字节字符集(如ZHS16GBK...
本文将详细解释如何查看及修改Oracle服务端和客户端的字符集。 首先,我们来了解如何在Oracle服务器端查询字符集。你可以通过执行以下SQL语句来获取当前数据库的字符集: ```sql SELECT userenv('language') FROM ...
具体来说,可以在系统环境变量中添加 `NLS_LANG` 或 `LANG` 变量,其值应该与 Oracle 服务器端的字符集设置保持一致,例如 `AMERICAN_AMERICA.ZHS16GBK`。 #### 四、PL/SQL Developer 的使用与配置 1. **PL/SQL ...
解决这个问题的关键是修改Oracle服务端的字符集为支持中文的字符集。 查看服务端当前使用的字符集可以使用以下命令: select userenv('language') from dual; 或 select * from V$NLS_PARAMETERS; 或 select *...
Oracle数据库的字符集修改是一个关键的操作,特别是在处理多语言数据或者需要兼容特定编码格式时。在Oracle中,字符集决定了数据库如何存储和显示文本数据,因此正确设置字符集至关重要。 首先,我们需要理解Oracle...
然后,通过修改应用服务器的注册表(如Windows系统下的`HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE`)中的`NLS_LANG`值,将字符集设置为与数据库相同的值,例如`SIMPLIFIED CHINESE_CHINA.ZHS16GBK`。 即使客户端字符集...
服务端字符集的设置则涉及数据库创建时的选择,一旦创建,可以通过查询V$NLS_PARAMETERS表查看当前字符集。若需更改,可以通过重建数据库或直接修改SYS.PROPS$表的方法。但是,直接修改PROPS$表仅影响更改后的数据,...
2. **修改服务端字符集**: 相较于第一种方法,这种方式更加实用且高效,是推荐的做法。下面将详细介绍具体的步骤。 #### 修改字符集的具体步骤 为了确保操作的安全性与准确性,请确保在进行以下操作前已经做好充分...
总结,Oracle9i服务端的安装涉及启动安装程序、选择组件、设置字符集、配置注册表和网络服务等多个步骤。每个环节都需要细心操作,以确保数据库系统的稳定运行。同时,对于非技术背景的用户,可能需要熟悉数据库管理...
- 此步骤确保PL/SQL Developer能够正确识别Oracle客户端库,从而与Oracle 11g服务端进行通信。 #### 五、修改 tnsnames.ora 文件 - 修改`tnsnames.ora`文件中的内容,确保连接到Oracle服务的名称和参数正确无误。 -...
2. **统一客户端和服务端字符集**:确保客户端和服务端采用相同的字符集,避免因字符集不匹配导致的数据乱码问题。 3. **使用NLS_LANG参数**:合理配置NLS_LANG参数,以便在多语言环境中正确处理文本数据。 4. **...
2. **确保客户端和服务端字符集一致** - 可以通过查询`v$nls_parameters`视图来查看服务端的字符集设置: ``` SELECT * FROM v$nls_parameters WHERE parameter LIKE '%LANG%' OR parameter LIKE '%CHARACTERSET...
- Oracle服务端字符集: ```sql SELECT parameter, value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'; ``` - Oracle客户端字符集: 在终端中输入`echo $NLS_LANG`。 确保客户端...
- 在安装过程中,需要提供数据库的全局数据库名、系统管理员(SYS)和普通用户(SYSTEM)的密码,以及其他数据库相关设置,如字符集、数据库类型(如通用服务器或专用服务器)等。 - 配置监听器:安装完成后,确保...
安装过程中可能需要设置数据库字符集、初始化参数、监听器配置等。在安装完成后,别忘了进行必要的后置配置,如创建数据库、启动监听器、注册服务等。 总之,安装Oracle 10g在Red Hat 48系统上是一项细致的工作,...
10. 文件复制和安装过程:安装过程中可能需要手动更改某些设置,如界面提示的数字更改。 11. Oracle Database Configuration Assistant的安装:等待此过程完成。 12. 口令管理:安装结束后,如果不需要修改默认口令...
- **字符集匹配**: Oracle客户端和服务端的字符集必须保持一致,例如`ZHS16GBK`,以确保中文字符能够正确显示。 - **解决方法**: 如果遇到字符集不匹配导致的问题,可以参考以下链接提供的解决方案: - [Oracle...
- **数据库用户准备**:确保 Oracle 数据库中有用于 Informatica 的用户,并查看数据库字符集。 - **执行安装脚本**:运行安装脚本开始安装过程。 - **域创建**:安装过程中需要创建一个新的域。 - **服务配置**...