需要注意的是,在不同平台,以上命令的输出可能有所不同,比如在Linux平台: [oracle@jumper oracle]$ cat a.dmp |od -x |head -2 0000000 0303...4554 5058524f3a54 3156 2e30 3230 0000020 302e0a31 4544 4759454c520a41544c42 这是由于Solaris和Linux的字节序是不同的...,Solaris是Big-Endians,Linux是Little-Endians,所以Linux上的输出通过交换可以得到: 0303 5445 58504f52 …....对应前两张图 第2、3字节,就知道该导出文件字符集为ZHS16GBk。...最常见的转换发生在从US7ASCII到ZHS16GBK之间。 由于很多数据库最初以US7ASCII字符集存储中文,单纯通过导出导入是无法完成字符集转换的。
skip=1,BINDSIZE=20971520, ROWS=10000000, READSIZE=20971520, ERRORS=999999999) load data CHARACTERSET ZHS16GBK...:执行导入时,用户名、密码、IP、数据库名、ctl文件路径配置成自己服务器 至此,sqllder快速导入完成 二、sqluldr2快速导出(服务端,oracle用户下执行) 1、安装sqluldr2 Linux...net/database/577354.html Windows链接下载地址: https://www.jb51.net/database/577355.html 将下载的文件解压,将sqluldr2_linux64..._10204.bin上传到oracle服务器的bin(/oracle/11.2.0/db_1/bin)目录下,并重命名为sqluldr2.bin 注意事项:本文所写的对应的是Linux版本,Winodws...oracle#@192.168.0.1:1521/test query="select * from test.test;" head=yes file=/output/test.csv charset=ZHS16GBK
Export file created by EXPORT:V11.02.00 via conventional path<<<<<<<<<----dmp文件的导出版本号 import done in ZHS16GBK...常用的US7ASCII、ZHS16GBK和AL32UTF8对应的字符集ID如下所示: SYS@lhrdb> SELECT NLS_CHARSET_NAME(TO_NUMBER('0001', 'XXXX...需要注意的是,十六进制在Linux和Windows下顺序不同。...如果将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中,那么还需要根据文件修改第4行的第3-4个字节(即07 D0之前的2个字节)。 修改前: ? 修改后: ?...& 说明: 将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2138791
在linux中NLS_LANG是一个环境变量,在windows中NLS_LANG是写在注册表中的。...> ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL> alter database open; SQL> ALTER DATABASE CHARACTER SET ZHS16GBK...; ALTER DATABASE CHARACTER SET ZHS16GBK * ERROR at line 1: ORA-12712: new character set must be a...character set 提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改: SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK...nls_parameters; 具体使用方法参见:oracle服务器和客户端字符集的查看和修改 4、检查Oracle Client字符集 windows查看nls_lang set NLS_LANG linux
SQL>ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK * ERROR at line 1...character set 提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更 改: SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK...SQL> select * from v$nls_parameters; 略 在内容中找下NLS_CHARACTERSET,这个值:ZHS16GBK 19 rows selected....SQL> select * from v$nls_parameters; 在内容中找下NLS_CHARACTERSET,这个值:ZHS16GBK了方便下载,所分享的资源和源码已经上传到百度云盘中进行存储和下载
import done in ZHS16CGB231280 character set and AL16UTF16 NCHAR character set import server uses ZHS16GBK...character set (possible charset conversion) export client uses ZHS16GBK character set (possible charset...import done in ZHS16CGB231280 character set and AL16UTF16 NCHAR character set import server uses ZHS16GBK...character set (possible charset conversion) export client uses ZHS16GBK character set (possible charset...character set (possible charset conversion) export client uses ZHS16GBK character set (possible charset
今天有客户向我咨询:数据库由ZHS16GBK字符集修改为AL32UTF8字符集,发现中文的数据中小部分出现乱码,客户认为AL32UTF8明明可以支持更多的文字,不应该出现这样的情况才对。...不过,之前也一直有个误区,我们都知道AL32UTF8是可以支持多国语言的字符集,对于中文字节存储占用空间比ZHS16GBK多,然后第一反应就认为AL32UTF8应该是ZHS16GBK的超集。...1.首先我的库ZHS16GBK的字符集 SQL> select userenv('language') from dual; USERENV('LANGUAGE') -----------------...这就说明我们要改的AL32UTF8字符集并不是ZHS16GBK的超集。...而客户端是Windows,chcp结果是936,也就是ZHS16GBK,这也进一步说明了ZHS16GBK和AL32UTF8字符集的不同。
安装数据库的编码一定要与原数据库保持一致 查看数据库的编码 select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET'; 安装Oracle时默认的编码就是ZHS16GBK...如果安装时选了别的编码 怎样把编码改回来呢 下面就说一下怎样把数据库编码改回ZHS16GBK 修改数据库编码 在CMD中运行以下命令 sqlplus /nolog SQL>connect sys...set job_queue_processes=0; SQL> alter database open; SQL> alter database character set internal_use ZHS16GBK...; SQL> shutdown immediate; SQL> startup 这样数据库的编码就会改回默认的ZHS16GBK编码了
比如几个已有的旧版本的数据库字符集为UTF-8 US7ASCII ZHS16GBK ZHS16GBK,折中一些,根据实际情况还是选用ZHS16GBK,如果是个跨国企业,我可能就会选择UTF8了。...使用dgmgrl的时候,发现也默认使用了SYSDG这个新的角色,而非SYSDBA [oracle@teststd dbs]$ dgmgrl / DGMGRL for Linux: Version 12.1.0.2.0
对于简体中文平台,一般缺省的字符集是ZHS16GBK。一旦字符集选定了,数据库中能够存储的字符就受到了限制,所以选择字符集应该尽可能多地容纳所有将用到字符。...常见的中文字符集有: ZHS16CGB231280 CGB2312-80 16-bit Simplified Chinese MB, ASCII ZHS16GBK GBK...但是,ZHS16GBK并非是ZHS16CGB231280的严格超集(虽然后者的汉字在前者中都存在,但是同样的编码在不同两个字符集中可能表达不同的汉字),所以在做数据库字符转换时仍然需要特别注意。...ORA-03113: end-of-file on communication channel 此时SQL*Plus可以执行,但是无法登录数据库,这是因为SQL*Plus执行时就需要调用字符集文件,在Linux...这时候经过第一步转换后的数据,US7ASCII到ZHS16GBK丢失首位,原样插入数据库,可以看到这时数据库中存放的就是错误的字符(在后面部分做了详细的转换): E:\nls2>sqlplus eygle
Oracle提供标准函数,对字符集名称及ID进行转换: SQL> select nls_charset_id('ZHS16GBK') from dual; NLS_CHARSET_ID('ZHS16GBK...SQL> select nls_charset_name(852) from dual; NLS_CHAR -------- ZHS16GBK 1 row selected....在很多时候,当我们进行导入操作的时候,已经离开了源数据库,这时如果目标数据库的字符集和导出文件不一致,很多时候就需要进行特殊处理, 以下介绍几种方法,主要以US7ASCII和ZHS16GBK为例 1....源数据库字符集为US7ASCII,导出文件字符集为US7ASCII或ZHS16GBK,目标数据库字符集为ZHS16GBK 在Oracle92中,我们发现对于这种情况,不论怎样处理,这个导出文件都无法正确导入到...对于Oracle9iR2,我们的测试结果是US7ASCII字符集,不管怎样转换,都无法正确导入ZHS16GBK字符集的数据库中。
SQL> set linesize 120 SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK...-12721: operation cannot execute when other sessions are active SQL> ALTER DATABASE CHARACTER SET ZHS16GBK...; ALTER DATABASE CHARACTER SET ZHS16GBK * ERROR at line 1: ORA-12716: Cannot ALTER DATABASE CHARACTER...SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; Database altered....NLS_NCHAR_CHARACTERSET ZHS16GBK NLS_RDBMS_VERSION 8.1.7.1.1 18 rows selected.
Windows: set NLS_LANG=american_america.AL32UTF8 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK Linux:...export NLS_LANG=american_america.AL32UTF8 export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK 以上为常用客户端字符集
job_queue_processes=0; alter database open; select userenv('language') from dual; --alter database character set zhs16gbk...; --注意:Oracle转化字符集 alter database character set internal_convert zhs16gbk; --注意:Oracle会自动转换含有CLOB的...character set internal_use us7ascii; --注意:Oracle会强制转换,会造成部分数据乱码,慎用 --alter database national character set zhs16gbk...另外注意,字符集不能反复修改,实际测试,如果此时改成us7ascii,再改回zhs16gbk,再尝试取SPA报告也不再成功。
NCHAR character set import server uses ZHS16GBK character set (possible charset conversion) export server...: E:/nls2>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 导入Session字符集设置为ZHS16GBK 导入US7ASCII的导出文件 E:/nls2>e:...type 1 to 852) not supported IMP-00000: Import terminated unsuccessfully 在从导出文件US7ASCII到导入 NLS_LANG设置为ZHS16GBK...NCHAR character set import server uses ZHS16GBK character set (possible charset conversion) export server...这时候经过第一步转换后的数据,US7ASCII到ZHS16GBK丢失首位,原样插入数据库,我们看到这时数据库中存放的就是错误的字符(在后面部分我们做了详细的转换): E:/nls2>sqlplus eygle
操作 oracle 数据库的时候报: Exception in thread "main" java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK...报错详细信息: Exception in thread "main" java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK at
Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 已导出 ZHS16GBK...the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.1.0 - Production 已导出 ZHS16GBK...Production With the Partitioning, OLAP and Data Mining options 经由常规路径由 EXPORT:V09.02.00 创建的导出文件 已经完成 ZHS16GBK...字符集和 AL16UTF16 NCHAR 字符集中的导入 导入服务器使用 AL32UTF8 字符集 (可能的字符集转换) 导出服务器使用 ZHS16GBK NCHAR 字符集 (可能的 ncharset...字符集和 AL16UTF16 NCHAR 字符集中的导入 导出服务器使用 ZHS16GBK NCHAR 字符集 (可能的 ncharset 转换) .
为AL16UTF16、UTF8两个中的一个;其他的字符类型使用的是 标准字符集(NLS_CHARACTERSET),例如该库的字符集查询 如下: 测试 (1) 首先在 数据库字符集为 ZHS16GBK...当字符类型使用标准 字符集为 ZHS16GBK时, 一个英文字符占一个字节,一个中文字符占两个字节; b....当 字符类型使用 国家字符集为 UTF8时, 一个英文字符占一个字节,一个中文字符占三个字节; (2) 然后我们在另一个库标准字符集为 ZHS16GBK,国家字符集为AL16UTF16时,...当字符类型使用标准 字符集为 ZHS16GBK时, 一个英文字符占一个字节,一个中文字符占两个字节; b.
常用的字符集:AL32UTF8和ZHS16GBK,其中AL32UTF8与UTF8几乎是等价的。一个汉字在AL32UTF8中占三个字节,而在ZHS16GBK中占用两个字节。...Linux下会话级设置方法:export NLS_LANG =AMERICAN_AMERICA.AL32UTF8 Windows下会话级设置方法:set NLS_LANG =AMERICAN_AMERICA.AL32UTF8
领取专属 10元无门槛券
手把手带您无忧上云