如何查看和修改Oracle数据库服务器端的字符集?

如何查看和修改Oracle数据库服务器端的字符集?,第1张

A、oracle server 端字符集查询

select userenv('language') from dual

其中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.

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

. 1.oracle server端字符集查询        复制代码代码如下:    select userenv('language') from dual    server字符集修改:    将数据库启动到RESTRICTED模式下做字符集更改:&??

oracle10g服务器端是安装在AIX 6.0系统上,客户端是安装在windows server 2008 系统上,客户端与服务器已成功连接,但是数据库表里的中文字无法显示,显示为“?”,用SQLPLUS查得服务器端的字符集为AL16uTF16,如何修改该字符集使之支持中文呢?另外oracle10G客户端的字符集需不需要设置,如何查看和设置呢?

[A]数据库服务器字符集select*fromnls_database_parameters,其来源于props$,是表示数据库的字符集。

客户端字符集环境select*fromnls_instance_parameters,其来源于v$parameter,

表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

会话字符集环境select*fromnls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是altersession完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,altersession环境变量注册表参数文件

字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

[A]8i以上版本可以通过alterdatabase来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。

Startupnomount

Alterdatabasemountexclusive

Altersystemenablerestrictedsession

Altersystemsetjob_queue_process=0

一、phpmyadmin设置新建数据库的默认编码为gbk或utf8编码的方法

1.先运行show variables like 'character%'查看本mysql的各项charset设置

其中:

character_set_database代表当前所在数据库的编码,这里是gbk

character_set_server代表默认的新建数据库编码,这里是latin1

也就是说,我的当前所在数据库编码是gbk,而如果我新建一个数据库,默认编码是latin1

2.根据character_set_database和character_set_server的值,我们就好办了。运行以下两条sql语句,即可设置完毕:

set character_set_server=gbk //设置默认新建数据库编码为gbk

alter database testdb character set utf8 //更改现有数据库编码

注意:set character_set_server=gbk只对当前连接或者查询有效。如果想新建数据库,请将create database语句写在同一查询中,否则无效

若想永久生效,将character_set_server = gbk写入mysql的配置文件/etc/my.cnf即可

二、phpmyadmin导入数据库时gbk或utf8编码的设置(解决导入数据库中文乱码问题)

1.首先确保导入的sql文件中的中文不是乱码,此sql文件可以是utf8编码也可以是gb2312编码,都没关系

2.在sql文件的最开头添加set names utf8或者gb2312(必须与你文件的编码相同,如果你想导入后是utf8,你的文件编码就要是utf8,如果你想导入后是gbk/gb2312,你的文件编码就要是gbk/gb2312)。

3.通过phpmyadmin导入界面直接导入即可

4.文件的字符集,mysql字符集,mysql连接校对等几处字符集设置可以不用管。比如我这里mysql字符集,mysql连接校对分别是latin1和utf8_general_ci,不影响我的导入后的字符集和编码


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/258382.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存