oracle怎么设置乱码 oracle中文乱码环境变量设置

怎样修改oracle server解决乱码

一般Oracle乱码都是因为客户端使用的字符集和服务器不一致引起的:

创新互联主要从事做网站、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务中山,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

确认数据库服务器所用字符集:

select * from nls_database_parameters where PARAMETER = 'NLS_CHARACTERSET'

设置客户端的字符集:

在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。

或者系统环境变量中的NLS_LANG

还可以在dos窗口里面自己设置,

比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK

这样就只影响这个窗口里面的环境变量。

在unix平台下,就是环境变量NLS_LANG。

$echo $NLS_LANG

AMERICAN_AMERICA.ZHS16GBK

如何解决插入Oracle数据中文为乱码问题

1、首先,Oracle查询编码:select * from v$nls_parameters;//看看是否GBK

2、如果是用Servlet或者别的,插入数据之前输出一下,看看是否乱码。

比如:

doPost()

//设置接受编码,但你的页面也必须是UTF-8

response.setContentType("text/html;charset=UTF-8");

doGet()

//下面方式转一下码

String username = new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF-8");

ORACLE显示中文为乱码,怎么修改?

在Redhat上安装Oracle10g没有设定字符集,采用的是操作系统默认字符集:WE8ISO8859P1,将字符集修改为:ZHS16GBK。由于过程不可逆,首先需要备份数据库。\x0d\x0a1.数据库全备\x0d\x0a\x0d\x0a2.查询当前字符集\x0d\x0aSQLselect*fromnls_database_parameterswhereparameter='NLS_CHARACTERSET';\x0d\x0aPARAMETERVALUE\x0d\x0a--------------------------------------------------------------------------------\x0d\x0aNLS_CHARACTERSETWE8ISO8859P1\x0d\x0a\x0d\x0a3.关闭数据库\x0d\x0aSQLshutdownimmediate\x0d\x0aDatabaseclosed.\x0d\x0aDatabasedismounted.\x0d\x0aORACLEinstanceshutdown.\x0d\x0a\x0d\x0a4.启动数据库到mount状态\x0d\x0aSQLstartupmount\x0d\x0aORACLEinstancestarted.\x0d\x0aTotalSystemGlobalArea205520896bytes\x0d\x0aFixedSize1266608bytes\x0d\x0aVariableSize100666448bytes\x0d\x0aDatabaseBuffers100663296bytes\x0d\x0aRedoBuffers2924544bytes\x0d\x0aDatabasemounted.\x0d\x0a\x0d\x0a5.限制session\x0d\x0aSQLaltersystemenablerestrictedsession;\x0d\x0aSystemaltered.\x0d\x0a\x0d\x0a6.查询相关参数并修改\x0d\x0aSQLshowparameterjob_queue_processes;\x0d\x0aNAMETYPEVALUE\x0d\x0a-----------------------------------------------------------------------------\x0d\x0ajob_queue_processesinteger10\x0d\x0a\x0d\x0aSQLshowparameteraq_tm_processes;\x0d\x0aNAMETYPEVALUE\x0d\x0a-----------------------------------------------------------------------------\x0d\x0aaq_tm_processesinteger0\x0d\x0a\x0d\x0aSQLaltersystemsetjob_queue_processes=0;\x0d\x0aSystemaltered.\x0d\x0a\x0d\x0a7.打开数据库\x0d\x0aSQLalterdatabaseopen;\x0d\x0aDatabasealtered.\x0d\x0a\x0d\x0a8.修改字符集\x0d\x0aSQLalterdatabasecharactersetZHS16GBK;\x0d\x0aalterdatabasecharactersetZHS16GBK\x0d\x0a*\x0d\x0aERRORatline1:\x0d\x0aORA-12712:newcharactersetmustbeasupersetofoldcharacterset\x0d\x0a\x0d\x0a出现错误提示,新字符集必须是老字符集的超集,也就原来字符集是新字符集的子集,可以再Oracle官方文档上查询字符集包含关系。下面使用Oracle内部命令internal_use,跳过超集检查,生产环境不建议使用此方法。\x0d\x0a\x0d\x0aSQLalterdatabasecharactersetinternal_useZHS16GBK;\x0d\x0aDatabasealtered.\x0d\x0a\x0d\x0a9.查询当前字符集\x0d\x0aSQLselect*fromnls_database_parameterswhereparameter='NLS_CHARACTERSET';\x0d\x0aPARAMETERVALUE\x0d\x0a--------------------------------------------------------------------------------\x0d\x0aNLS_CHARACTERSETZHS16GBK\x0d\x0a\x0d\x0a10.关闭数据库\x0d\x0aSQLshutdownimmediate\x0d\x0aDatabaseclosed.\x0d\x0aDatabasedismounted.\x0d\x0aORACLEinstanceshutdown.\x0d\x0a\x0d\x0a11.启动数据库到mount状态\x0d\x0aSQLstartupmount\x0d\x0aORACLEinstancestarted.\x0d\x0aTotalSystemGlobalArea205520896bytes\x0d\x0aFixedSize1266608bytes\x0d\x0aVariableSize100666448bytes\x0d\x0aDatabaseBuffers100663296bytes\x0d\x0aRedoBuffers2924544bytes\x0d\x0aDatabasemounted.\x0d\x0a\x0d\x0a12.将相关参数改回原来值\x0d\x0aSQLaltersystemsetjob_queue_processes=10;\x0d\x0aSystemaltered.\x0d\x0a\x0d\x0a13.打开数据库\x0d\x0aSQLalterdatabaseopen;\x0d\x0aDatabasealtered.

如何解决Oracle数据库中文乱码问题

一、pl/sql developer 中文字段显示乱码

原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的。

二、查看和修改oracle数据库字符集:

select userenv('language') from dual;

查询结果:

SIMPLIFIED CHINESE_CHINA.AL32UTF8

--修改oracle数据库字符集:(在SQL Plus中)

sql conn / as sysdba;

sql shutdown immediate;

database closed.

database dismounted.

oracle instance shut down.

sql startup mount;

oracle instance started.

total system global area 135337420 bytes

fixed size 452044 bytes

variable size 109051904 bytes

database buffers 25165824 bytes

redo buffers 667648 bytes

database mounted.

sql alter system enable restricted session;

system altered.

sql alter system set job_queue_processes=0;

dbeaver连接oracle数据库显示乱码怎么解决?

在 DBeaver 中连接 Oracle 数据库显示乱码的解决方法可能有多种,下面列举几种常见的方法:

修改字符集: 修改 DBeaver 的字符集设置为与 Oracle 数据库的字符集相同,可以在 DBeaver 中的首选项 - 数据库 - Oracle 中设置。

修改环境变量: 编辑环境变量 NLS_LANG 设置为与 Oracle 数据库的字符集相同。

修改数据库连接字符集:在连接 Oracle 数据库时将字符集设置为与 Oracle 数据库的字符集相同。

修改客户端配置文件:修改客户端的配置文件,如 client/network/admin/sqlnet.ora 将字符集设置为与 Oracle 数据库的字符集相同。

修改SQL语句:在执行的SQL语句中加入 nls_lang 语句来解决乱码问题。

怎么设置oracle的中文乱码

在Redhat上安装Oracle 10g没有设定字符集,采用的是操作系统默认字符集:WE8ISO8859P1,将字符集修改为:ZHS16GBK。由于过程不可逆,首先需要备份数据库。

1.数据库全备

2.查询当前字符集

SQL select * from nls_database_parameters where parameter='NLS_CHARACTERSET';

PARAMETER                                VALUE

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

NLS_CHARACTERSET                         WE8ISO8859P1

3.关闭数据库

SQL shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

4.启动数据库到mount状态

SQL startup mount

ORACLE instance started.

Total System Global Area  205520896 bytes

Fixed Size                  1266608 bytes

Variable Size             100666448 bytes

Database Buffers          100663296 bytes

Redo Buffers                2924544 bytes

Database mounted.

5.限制session

SQL alter system enable restricted session;

System altered.

6.查询相关参数并修改

SQL show parameter job_queue_processes;

NAME                                 TYPE        VALUE

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

job_queue_processes                  integer     10

SQL show parameter aq_tm_processes;

NAME                                 TYPE        VALUE

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

aq_tm_processes                      integer     0

SQL alter system set job_queue_processes=0;

System altered.

7.打开数据库

SQL alter database open;

Database altered.

8.修改字符集

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

出现错误提示,新字符集必须是老字符集的超集,也就原来字符集是新字符集的子集,可以再Oracle官方文档上查询字符集包含关系。下面使用Oracle内部命令internal_use,跳过超集检查,生产环境不建议使用此方法。

SQL alter database character set internal_use ZHS16GBK;        

Database altered.

9.查询当前字符集

SQL select * from nls_database_parameters where parameter='NLS_CHARACTERSET';

PARAMETER                                VALUE

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

NLS_CHARACTERSET                         ZHS16GBK

10.关闭数据库

SQL shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

11.启动数据库到mount状态

SQL startup mount

ORACLE instance started.

Total System Global Area  205520896 bytes

Fixed Size                  1266608 bytes

Variable Size             100666448 bytes

Database Buffers          100663296 bytes

Redo Buffers                2924544 bytes

Database mounted.

12.将相关参数改回原来值

SQL alter system set job_queue_processes=10;

System altered.

13.打开数据库

SQL alter database open;

Database altered.


网页名称:oracle怎么设置乱码 oracle中文乱码环境变量设置
本文来源:http://myzitong.com/article/hhpsjs.html