如何查看和修改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客户端的字符集需不需要设置,如何查看和设置呢?

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数据库字符集修改完成!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6806382.html

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

发表评论

登录后才能评论

评论列表(0条)

保存