我们用Navacat连接Oracle数据库的时候,会提示ORA-12737:Instant Client Light:unsupported server character set ZHS16GBK
Oracle字符集检查和修改 在部署重构版测试环境时,需要创建Oracle数据库,使用dbca创建数据库之后没有注意数据库本身的字符集,导致后续所有的数据库脚本执行后中文乱码。...2、检查Oracle Server字符集 检查Oracle Server字符集最常用的方法有两种 ▶查询nls_database_parameters select * from nls_database_parameters...userenv函数的具体使用和当前会话字符集的取值详见以下链接 oracle的userenv和nls_lang详解 3、修改Oracle Server字符集 一旦数据库创建后,数据库的字符集理论上讲是不能改变的...如果两种字符集之间根本没有子集和超集的关系,那么字符集的转换是不受oracle支持的。...、修改Oracle Client字符集 修改客户端字符集只需要修改上述检查结果中的NLS_LANG即可。
本文节选于《循序渐进Oracle》 通常在现实环境中,存在3个字符集设置: 客户端应用字符集(Client ApplicationCharacter Set); 客户端NLS_LANG参数设置; 服务器端...至于这些字符能否在数据库中正常存储,就和另外的两个字符集设置紧密相关了(通常我们可以忽略应用程序的字符集,这个字符集在应用程序安装时,已经被内在的决定,并且会依据操作系统的相关设置进行选择)。...形式存放入数据库,对于其他字符,在NLS_LANG和数据库字符集之间进行转换后存入。 下面来看一下最为常见的字符集及乱码的产生。...NLS_LANG字符集与数据库字符集不同 当NLS_LANG字符集与数据库字符集不同,且NLS_LANG不同于客户端字符集设置时,存在以下两种可能。...可以用我们熟悉的字符集做一个简单的测试(测试环境是客户端代码点对应中文18030字符集,NLS_LANG设置为US7ASCII字符集,数据库CHARACTER SET为ZHS16GBK)。 ?
编辑手记:很多人在进行数据库导入导出操作的时候会遇到字符集的问题,今日拣选了 《循序渐进Oracle》一书中的相关章节,希望对初学Oracle的朋友有所帮助。...需要注意的是,在不同平台,以上命令的输出可能有所不同,比如在Linux平台: [oracle@jumper oracle]$ cat a.dmp |od -x |head -2 0000000 0303...字符集和Solaris上是一致的,所以也可以通过od的参数设置显示格式: [oracle@jumper oracle]$ cat a.dmp|od -t x1|head -2 0000000 03 03...而对于Oracle 10g的expdp导出文件,一切则要简单得多,在expdp的导出文件开始部分,Oracle以XML格式记录了数据的字符集信息,以下是一个单表导出文件的头信息。...在文件开始部分就记录了数据库的字符集、国家字符集及时区等信息,在表字段的属性部分也记录了字符集ID: ?
在Oracle数据迁徙的时候需要使源和目标数据库的字符集、版本等信息统一…… 这里是对一个数据库的设置,需要在两边进行同样的操作。...------------------------------------------------ AMERICAN_AMERICA.ZHS16GBK SYS@PROD1> startup mount ORACLE...SYS@PROD1> alter system set AQ_TM_PROCESSES=1; 重启(实验环境下强制重启) SYS@PROD1> startup force ; ORACLE instance
在Oracle中,几种常用的Unicode为UTF-8,AL16UTF8,AL32UTF8 2.Oracle所支持的字符集及分类 Oracle支持两百多种字符集,包含了单字节、可变字节以及通用字符集等...是Oracle数据库中使用基于标准Unicode字符集编码而定义的Unicode字符集 下面主要说明一下AL32UTF8、AL16UTF8 AL32UTF8 是一个bit的Unicode字符编码,...字符集转换 正如前面所描述,客户端可以使用不同于服务器端的字符集、语言环境,这些不同字符集的转换工作则由OracleNet来负责 Oracle Net会比较客户端和服务器之间的字符集,在需要的时候...Oracle Net则实现透明、自动转换字符集 一般情况下,要求服务器端的字符集是客户端的超集或相等,即使用相同的字符集 1.未正确设置NLS_LANG时容易导致数据不转换或转换错误 假定客户端使用的是...在将数据从一个Oracle数据库导出之后再导入到另外一个Oracle数据库,如果两者字符集不同,则发生转换 当导出DDL时,导出文件使用NLS_LANG指定的字符集,当指定的字符集不同于数据库字符集时
Oracle全球支持(即Globalization Support)允许我们使用本地语言和格式来存储和检索数据。通过全球支持,Oracle可以支持多种语言及字符集,得以展示数据库的强大魅力。...但是需要说明的是,有些字符集命名违背了这个规范,Oracle 8/Oralce 8i中的UTF-8是第一个打破这个命名规范的字符集。...图3-4 打开字符集文件 通过字符集文件,Oracle将所有汉字编码存放在数据库之中,这样当存放和转换汉字时才有了依据,我们看一下字符编码,如图3-5所示。 ?...如果没有了字符集文件,应用软件(包括SQL*Plus和Oracle执行软件)都是无法完成初始化的。...再来看一下执行导入时Oracle的一些判断和处理过程(以Oracle 8i为例): (1)首先确定导出数据库字符集环境。
Oracle 数据库分为数据库字符集和客户端字符集两种! 很多刚接触的朋友经常会搞混这两个字符集,数据库字符集是在创建数据库时进行指定的,不建议更改!而客户端字符集是可以随时更改的!...查询数据库字符集: select * from nls_database_parameters t where t.parameter in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET...'); 查询客户端字符集: SELECT USERENV('language') FROM DUAL; 如何修改客户端字符集?...export NLS_LANG=american_america.AL32UTF8 export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK 以上为常用客户端字符集
Oracle 与 MySQL 的差异分析(10):字符集 1 数据库支持的字符集 1.1Oracle Oracle创建数据库时指定字符集,一般不能修改,整个数据库都是一个字符集。...1.2 MySQL MySQL的字符集比较灵活,可以指定数据库、表和列的字符集,并且很容易修改数据库的字符集,不过修改字符集时已有的数据不会更新。...2.1Oracle 在Oracle中,可以用dump查询数据的编码,使用lengthb查询字节的长度。...客户端字符集很重要,输入数据时,包括文本输入和屏幕输入等,客户端会以这个字符集来解析输入的文本,如果实际输入的字符集与客户端字符集不一致,那么就可能导致录入数据库的数据出现乱码;输出数据时,如果客户端字符集设置的不合适...3.1Oracle 通过环境变量NLS_LANG配置客户端字符集。
对于不同国家或地区数据库通常会使用不同的字符集,而全球性企业也会选择使用统一编码的数据库字符集。Oracle数据库统一字符集为AL32UTF8,可以参考:Oracle 全球化特性与字符集。...对于不同的字符集容易出现转换乱码,同时不同字符集也影响存储空间的占用。 如本文下面的描述。...一、字符集环境变量对数据库的影响 [oracle@java_1 ~]$ env |grep LANG LANG=zh_CN.UTF-8 ###OS环境变量 SQL> select * from...###下面将其设置为繁体字符集,报ORA-12705,如下: [oracle@java_2 ~]$ export NLS_LANG="CHINESE_TAIWAN.ZHT16MSWIN950" [oracle...7、参考:Oracle 全球化特性与字符集 264157.1
“字符”和“编码”的一张对照表, 数据库安装过程中,会选择确认下面两个字符集: 1.数据库字符集:数据库需要存储多国语言选择AL32UTF8,只有中英文选择ZHS16GBK 2.国家字符集 一般都选用AL16UTF16...服务器上oracle字符集 如何确定当前字符集设定,何时可以更改字符集。...Oracle不建议后期更改数据库字符集!...服务器操作系统字符集(暂时忽略) ps: 1.因为sql*plus 本身没有字符集,依赖于所在操作系统的字符集,而在远端linux上的oracle也是无法直接访问到windows上的字符集,所以依靠sql...2.因为oracle软件本身有字符集,当软件有自己的字符集时,就不用操作系统的字符集,所以服务器操作系统字符集的因素可以暂时忽略。
【Oracle 数据库查询字符集】 查询出 NLS_NCHAR_CHARACTERSET 参数的值即是数据库的字符集。...select * from nls_database_parameters; 【PG 数据库查询字符集】 正常从 pg_database 查出来的 encoding 是数字 6,通过 pg_encoding_to_char
关键字:oracle安装 昨天安装了个oracle19c,但在导入数据库时发现原来数据库的字符集设置错了,导致数据库文件无法正常导入并还原。今天又折腾了一半天查找如果修改oracle的字符集的操作。...本文适用oracle19c、oracle12c [root@localhost ~]# su -l oracle [oracle@localhost ~]$ sqlplus /nolog SQL> conn...ORACLE instance shut down. SQL> startup mount ORACLE instance started....:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更 改: SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; Database...ORACLE instance shut down. SQL> startup ORACLE instance started.
如果编码为GBK 那么两个字节存储一个汉字 varchar2最多为4000个字节 也就是说当字符编码为GBK的时候varchar2最多可以容纳2000个汉字;
LANG是针对Linux系统的语言、地区、字符集的设置,对linux下的应用程序有效,如date; NLS_LANG是针对Oracle语言、地区、字符集的设置,对oracle中的工具有效。...查询字符集 win10操作系统字符集查询 ?...oracle字符集查询 --安装时字符集:SIMPLIFIED CHINESE_CHINA.AL32UTF8 select userenv('language') from dual; select...,这部分真正影响数据库字符集。...字符集区别 (1)nls_database_parameters来源于props$,是表示数据库的字符集。
但在12.1中,PDB的字符集与root容器必须保持一致,这样无形中造成了PDB迁移或者克隆的限制性。从12.2开始,同一个cdb中的各个PDB字符集可以不相同。...测试环境 环境:Oracle 12.2.0.1 (REL 6.9 x86-64) 目标端数据库使用dbca创建容器数据库,默认cdb默认字符集是AL32UTF8: ? PDB字符集: ?...1.目标库参数转换 alter session set pdb_file_name_convert='/oracle/app/oradata/cdbgbk/pdbgbk','/oracle/app/oradata...内部转换字符集 使用internal_use: ? 直接修改字符集报错,说明新设字符集必须是老字符集的超集 ? 使用INTERNAL_USE: ? 需要变更为限制会话模式再进行修改: ?...注:oracle并不建议使用INTERNAL_USE来变更数据库的字符集。 作者介绍 谭龙 云和恩墨技术顾问 擅长Oracle数据库的安装配置、故障诊断、升级迁移解决方案的设计与实施。
客户端要连接并操作服务器的 oracle 数据库,很多时候需要知道服务器端的字符集。 通过 sql 语句select usernev('language') from dual语句就可以了。
字符集源端和目标端不一致容易出现上面问题,好烦人。。。...但也不是没有办法解决 先查下两端的字符集,这是要修改目标端的字符集跟源端的一致,也可以反过来,就是更麻烦 这里是将其改为 ZHS16GBK SQL> SELECT NLS_CHARACTERSET,NLS_NCHAR_CHARACTERSET...ORACLE 例程已经关闭。 SQL> STARTUP MOUNT EXCLUSIVE; ORACLE 例程已经启动。...ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK * 第 1 行出现错误: ORA-12712: 新字符集必须为旧字符集的超集...ORACLE 例程已经关闭。 SQL> startup; ORACLE 例程已经启动。
♣ 题目部分 在Oracle中,如何查看和设置字符集?...2、透明地将数据从一个字符集转换到另一个字符集。Oracle字符集可以分为数据库字符集和客户端字符集。...国家字符集实质上是为Oracle选择的附加字符集,主要作用是为了增强Oracle的字符处理能力。...国家字符集在Oracle 9i中进行了重新定义,只能在UNICODE编码中的AL16UTF16和UTF8中选择,默认值是AL16UTF16。...5、查看Oracle支持的字符集 可以查询视图V$NLS_VALID_VALUES来获取Oracle数据库支持的字符集,从下面的SQL可以看出大约支持200多种字符集。
领取专属 10元无门槛券
手把手带您无忧上云