问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle中文乱码

发布网友 发布时间:2022-04-25 13:18

我来回答

4个回答

懂视网 时间:2022-04-30 15:42

本地ORACLE连接创建好后,默认是GBK的字符集,如果连接服务器不是同样的GBK字符集就会出现中文乱码的问题,这种情况我们需要修改本地的字符集来和服务器匹配.

通过注册表修改
  HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0  
  NLS_LANG 改为你需要的字符集.



设定环境变量

    添加环境变量---   NLS_LANG 改为你需要的字符集



常用字符集
  AMERICAN_AMERICA.WE8ISO8859P1
  SIMPLIFIED CHINESE_CHINA.ZHS16GBK
  AMERICAN_AMERICA.AL32UTF8

  SIMPLIFIED CHINESE_CHINA.US7ASCII

 AMERICAN_AMERICA.US7SCII
 AMERICAN _ AMERICA. ZHS16GBK

  AMERICAN_AMERICA.utf8



  现在,介绍一些与字符集有关的NLS_LANG参数,
  NLS_LANG格式:
  NLS_LANG = language_territory.charset
  有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:language 指定服务器消息的语言。
  territory 指定服务器的日期和数字格式。
  charset 指定字符集
  例如: 
  AMERICAN_AMERICA.US7SCII
  AMERICAN _ AMERICA. ZHS16GBK
  还有一些子集可以更明确定义NLS_LANG参数: 
  DICT.BASE 数据字典基本 表版本
  DBTIMEZONE 数据库时区
  NLS_LANGUAGE 语言
  NLS_TERRITORY 地域
  NLS_CURRENCY 本地货币字符
  NLS_ISO_CURRENCY ISO货币字符
  NLS_NUMERIC_CHARACTERS 小数字符和组 分隔开
  NLS_CHARACTERSET 字符集
  NLS_CALENDAR 日历系统
  NLS_DATE_FORMAT 缺省的日期格式
  NLS_DATE_LANGUAGE 缺省的日期语言
  NLS_SORT 字符排序序列
  NLS_TIME_FORMAT 时间格式
  NLS_TIMESTAMP_FORMAT 时间戳格式




本文出自 “事在人为,知在天意” 博客,请务必保留此出处http://yangsj.blog.51cto.com/8702844/1697075

oracle客户端中文乱码

标签:oracle客户端中文乱码

热心网友 时间:2022-04-30 12:50

1、你的NLS_CHARACTERSET=CHS16GBK,说明存贮中文字符没问题的,用AL32UTF8也可以,也有的用AL16UTF16。
2、查询时候需要设置客户端中文显示。例如:
NLS_LANG=AMERICAN_CHINA.AL32UTF8
NLS_LANG=AMERICAN_CHINA.ZHS16GBK
3、你可以在注册表或Windows环境变量设置NLS_LANG
Windows:
# 常用中文字符集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字符集
set NLS_LANG=american_america.AL32UTF8
可以通过修改注册表
HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMExx/NLS_LANG
4、select userenv('language') from al;

热心网友 时间:2022-04-30 14:08

在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.

热心网友 时间:2022-04-30 15:43

ALTER DATABASE CHARACTER SET ZHS16GBK;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
修复征信是不是真的? 市面上征信修复公司可靠吗? 征信修复公司是真是假,真的可以修复吗? Emulex FC HBA卡 皮肤毛囊炎怎样治 银行自动扣款什么原因 银行什么情况自动扣款 贷款自动扣款什么意思 粤省事办理准生证需要多久 粤省事办理准生证步骤 为什么于嘉说山猫队和网队的比赛,少了易建联山猫进攻都没那么流畅了... 美的空调h5 oracle odbc 怎么设置能 支持中文 oracle 插入中文查询显示乱码,问号是什么原因 linux下oracle环境变量设置中加入了中文字符级执行sqlplus却不是中文... 美的变频空调H5是什么故障? iPhone11洒上水面容会坏吗? Oracle修改字符集后,所有的中文数据变成乱码!请问怎么解决。_百度知 ... oracle中如何将字符和数字转成中文 oracle用户名有中文字符怎么修改 苹果11面容识别失灵了咋办? ORACLE的中文问题 iphone11换屏面容有影响吗 如何设置oracle数据库的字符集 2000买一个iphone11面容坏了的手机值不值 Oracle数据出现中文乱码怎么解决 如何解决Oracle数据库中文乱码问题 PLSQL Developer如何把英文字符集设置为中文? 如何做红烧肉黄花菜 oracle的NLS_LANGUAGE如何修改成SIMPLIFIED CHINESE_CHINA? 怎么设置oracle的中文乱码 美的空调显示h5原因是不是按错键打开机温度不会上升,以前十分钟温度就上... 美的空调H5故障 铁电池放电过程中把什么能转化为什么能 用什么软件打开IGS 文件 IGS文件用什么软件打开最好 IGS文件用什么软件能打开,有免费的安装软件吗? igs是什么类型文件,用什么打开 您好!请问igs格式用什么软件可以打开? igs、prt如何打开这些文件格式,用什么软件 有没有朋友告诉我IGS格式的文件该用什么软件打开,用CAD行吗? 什么是p2p软件? 什么是P2P软件啊 红烧鸡腿肉的家常做法有哪些? 私家烧鸡腿肉的做法,私家烧鸡腿肉怎么做好吃 怎么掩鸡腿肉 请问上善佳钵钵鸡的做法,用些什么料?具体流程是什么? 鸡腿丁怎么做好吃简单 所有的电池放电时都是化学能转为电能,充电时是电能转为化学能吗? 购车时怎么算价格? 买车的时候全款价格和裸车价格有什么区别?