您的当前位置:首页oracle基础教程(8)oracle修改字符集

oracle基础教程(8)oracle修改字符集

2023-11-10 来源:六九路网

 

-->SELECT parameter, value FROM v$nls_parameters WHERE parameter LIKE ‘%CHARACTERSET‘;

好像结果:

PARAMETER----------------------------------------------------------------VALUE----------------------------------------------------------------NLS_CHARACTERSETZHS16GBKNLS_NCHAR_CHARACTERSETAL16UTF16

3、修改字符集

SQL> alter database character set INTERNAL_USE AL32UTF8;

 

4、具体命令执行过程:

C:UsersAdministrator>sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期日 7月 3 13:11:46 2016Copyright (c) 1982, 2010, Oracle. All rights reserved.连接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>SQL> SELECT parameter, value FROM v$nls_parameters WHERE parameter LIKE ‘%CHARACTERSET‘;PARAMETER----------------------------------------------------------------VALUE----------------------------------------------------------------NLS_CHARACTERSETZHS16GBKNLS_NCHAR_CHARACTERSETAL16UTF16SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL>SQL>SQL> startup mount;ORACLE 例程已经启动。Total System Global Area 855982080 bytesFixed Size 2180544 bytesVariable Size 528484928 bytesDatabase Buffers 322961408 bytesRedo Buffers 2355200 bytes数据库装载完毕。SQL>SQL> alter session set SQL_TRACE=TRUE;会话已更改。SQL> alter system enable RESTRICTED SESSION;系统已更改。SQL> alter system set JOB_QUEUE_PROCESSES=0;系统已更改。SQL> alter system set AQ_TM_PROCESSES=0;系统已更改。SQL> alter database open;数据库已更改。SQL> alter database character set INTERNAL_USE AL32UTF8;数据库已更改。SQL> alter session set SQL_TRACE=false;会话已更改。SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup;ORACLE 例程已经启动。Total System Global Area 855982080 bytesFixed Size 2180544 bytesVariable Size 528484928 bytesDatabase Buffers 322961408 bytesRedo Buffers 2355200 bytes数据库装载完毕。数据库已经打开。SQL> SELECT parameter, value FROM v$nls_parameters WHERE parameter LIKE ‘%CHARACTERSET‘;PARAMETER--------------------------------------------------------------------------------VALUE--------------------------------------------------------------------------------NLS_CHARACTERSETAL32UTF8NLS_NCHAR_CHARACTERSETAL16UTF16SQL>

 

oracle基础教程(8)oracle修改字符集

标签:

小编还为您整理了以下内容,可能对您也有帮助:

如何修改Oracle数据库字符集

以DBA身份进入SQLPLUS SQL sqlplus sys/sys as sysdba; …… SQL shutdown immediate; SQL startup mount; SQL alter system enable restricted session; SQL alter system set job_queue_processes=0; SQL alter system set aq_tm_processes=0; SQL alter database open; SQL alter database character set internal_use AL32UTF8;(ZHS16GBK) SQL shutdown immediate; SQL startup; 这样就可以讲ORACLE的字符集修改为UTF8,如果需要修改为GBK只需将alter database character set internal_use AL32UTF8;(ZHS16GBK)这句最后的AL32UTF8修改为ZHS16GBK即可

如何修改Oracle数据库字符集

以DBA身份进入SQLPLUS SQL sqlplus sys/sys as sysdba; …… SQL shutdown immediate; SQL startup mount; SQL alter system enable restricted session; SQL alter system set job_queue_processes=0; SQL alter system set aq_tm_processes=0; SQL alter database open; SQL alter database character set internal_use AL32UTF8;(ZHS16GBK) SQL shutdown immediate; SQL startup; 这样就可以讲ORACLE的字符集修改为UTF8,如果需要修改为GBK只需将alter database character set internal_use AL32UTF8;(ZHS16GBK)这句最后的AL32UTF8修改为ZHS16GBK即可

oracle中字符集如何修改?

使用plsql设置字符集的方法:

  1、执行sql查看oracle服务器字符集;

  2、将表示语言oracle数据库服务器语言为简体中文,地区为中国,字符集为ZHS16GBK3;

  3、oracle客户端在获取字符集设置信息时的优先级顺序依次为session、环境变量、注册表、参数文件;

  4、设置NLSLANG变量值,从而覆盖所有设置值;

  5、新建一个bat文件,运行plsql程序时直接打开此bat即实现自动设置NLSLANG变量后启动plsql

Oracle如何修改字符集及如何查看dmp文件的

Oracle数据库查看和修改服务器端的字符集的方法是本文主要要介绍的内容,接下来救让我们一起来了解一下这部分内容。

A、oracle server 端字符集查询

select userenv('language') from al

其中NLS_CHARACTERSET 为server端字符集

NLS_LANGUAGE 为 server端字符显示形式

B、查询oracle client端的字符集

$echo $NLS_LANG

如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。

C、server端字符集修改

将数据库启动到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 ZHS16GBK;

ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

Database altered.

SQL> select * from v$nls_parameters;



19 rows selected.

重启检查是否更改完成:

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;



19 rows selected.

我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验。

这一方法在某些方面是有用处的,比如测试;应用于产品环境大家应该格外小心,除了你以外,没有人会为此带来的后果负责。

结语(我们不妨再说一次):

对于DBA来说,有一个很重要的原则就是:不要把你的数据库置于危险的境地!

这就要求我们,在进行任何可能对数据库结构发生改变的操作之前,先做有效的备份,很多DBA没有备份的操作中得到了惨痛的教训。

D、client端字符集修改

在 /home/oracle与 /root用户目录下的。bash_profile中

添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句

关闭当前ssh窗口。

注意:NLS_LANG变量一定要配置正确否则会引起sqlplus 失效。

关于Oracle数据库查看和修改服务器端的字符集的方法就介绍到这里了,希望能够对您有所收获!

Oracle如何修改字符集及如何查看dmp文件的

Oracle数据库查看和修改服务器端的字符集的方法是本文主要要介绍的内容,接下来救让我们一起来了解一下这部分内容。

A、oracle server 端字符集查询

select userenv('language') from al

其中NLS_CHARACTERSET 为server端字符集

NLS_LANGUAGE 为 server端字符显示形式

B、查询oracle client端的字符集

$echo $NLS_LANG

如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。

C、server端字符集修改

将数据库启动到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 ZHS16GBK;

ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

Database altered.

SQL> select * from v$nls_parameters;



19 rows selected.

重启检查是否更改完成:

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;



19 rows selected.

我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验。

这一方法在某些方面是有用处的,比如测试;应用于产品环境大家应该格外小心,除了你以外,没有人会为此带来的后果负责。

结语(我们不妨再说一次):

对于DBA来说,有一个很重要的原则就是:不要把你的数据库置于危险的境地!

这就要求我们,在进行任何可能对数据库结构发生改变的操作之前,先做有效的备份,很多DBA没有备份的操作中得到了惨痛的教训。

D、client端字符集修改

在 /home/oracle与 /root用户目录下的。bash_profile中

添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 语句

关闭当前ssh窗口。

注意:NLS_LANG变量一定要配置正确否则会引起sqlplus 失效。

关于Oracle数据库查看和修改服务器端的字符集的方法就介绍到这里了,希望能够对您有所收获!

如何修改Oracle数据库字符集

1、改客户端字符集:通过WINDOWS的运行菜单运行Regedit,修改注册表

Start -> Run -> Rededit <-|

Under registry Editor - > HKEY_LOCAL_MACHINE -> SOFTWARE ->ORACLE->KEY_XE->RIGHT WINDOW DOUBLE CLICK NLS_LANG -> CHANGE VALUE TO "AMERICAN_AMERICA.UTF8" ->OK ->CLOSE REGISTRY

正确设置ORACLE客户端字符集的方法:

oracle客户端字符集设置需要和服务器端一致,否则会出现乱码问题。

首先连接服务器,查询服务器端设置:

select * from v$nls_parameters;

找到:

NLS_LANGUAGE

NLS_TERRITORY

NLS_CHARACTERSET

环境变量nls_lang便是由这三部分组成

NLS_LANG = language_territory.charset

比如:

NLS_LANG = American_Japan.JA16SJIS

2、改服务器端字符集,通过ORACLE的SQL PLUS命令窗口改

在SQL*PLUS 中,以DBA登录

conn 用户名 as sysdba

然后执行以下命令

>shutdown immediate; (把database停了)

>startup mount; (把database重开去可更改情况)

>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 utf8;

OR

>alter database character set internal_use utf8;

>shutdown immediate;

>startup; (重开正常oracle)

ORACLE数据库字符集修改完成!

如何更改Oracle字符集

复制一段吧:

通常情况下,字符集是在安装的时候选定好的,需要修改数据库的字符集Oracle建议的做法是重建数据库(EXP/EXPDP导出后再导入),虽然Oracle官方文档也有说如何修改字符集,但这不是Orale推荐的方法.下面是Oracle官方文档中提到的如何修改字符集的方法.

1.查看当前数据库字符集

select * from nls_database_parameters

where parameter='NLS_CHARACTERSET';

-----------------------------------

PARAMETER VALUE

NLS_CHARACTERSET WE8ISO8859P1

这里的字符集WE8ISO8859P1是不支持中文的

2.将字符集修改为中文字符集ZHS16GBK

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> STARTUP MOUNT;

ORACLE instance started.

Total System Global Area 734003200 bytes

Fixed Size 1221564 bytes

Variable Size 264244292 bytes

Database Buffers 465567744 bytes

Redo Buffers 2969600 bytes

Database mounted.

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

System altered.

SQL> ALTER DATABASE OPEN;

Database altered.

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

ALTER DATABASE CHARACTER SET ZHS16GBK

*

ERROR at line 1:

ORA-12712: new character set must be a superset of old character set

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

Database altered.

SQL> SHUTDOWN IMMEDIATE;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 734003200 bytes

Fixed Size 1221564 bytes

Variable Size 264244292 bytes

Database Buffers 465567744 bytes

Redo Buffers 2969600 bytes

Database mounted.

Database opened.

这样将数据库的字符集由原来的WE8ISO8859P1修改成了ZHS16GBK,对原来的字符集有中文的显示的还是乱码,但对新入库的中文字符集就能正常显示.

显示全文