您好,登錄后才能下訂單哦!
生產(chǎn)環(huán)境中經(jīng)常使用到Oracle的IMP導(dǎo)入和EXP導(dǎo)出來功能來達(dá)到數(shù)據(jù)遷移的目的,通常在源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫中查詢字符集是否致,
測試環(huán)境中導(dǎo)入IMP導(dǎo)入報(bào)錯(cuò)信息如下:
導(dǎo)入命令如下:
[oracle@localhost.localdomain:/soft]$imp scott/scott file=/soft/scott_v1.dmp log=/soft/scott_v1.log ignore=y full=y
Import: Release 11.2.0.4.0 - Production on Sun Oct 22 16:26:27 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export file created by EXPORT:V11.02.00 via conventional path
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set --提示字符集不一致
. importing SCOTT's objects into SCOTT
. . importing table "BONUS" 0 rows imported
. . importing table "DEPT"
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_DEPT) violated--提示各種亂碼問題
Column 1 10
Column 2 ǎ
Column 3
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_DEPT) violated
Column 1 20
Column 2 в
Column 3 ±±
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_DEPT) violated
Column 1 30
Column 2 к
Column 3
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_DEPT) violated
Column 1 40
Column 2
Column 3 0 rows imported
. . importing table "EMP"
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7369
Column 2 itpux01
Column 3 τ
Column 4 7902
Column 5 17-DEC-1980:00:00:00
Column 6 800
Column 7
Column 8 20
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7499
Column 2 itpux02
Column 3 к
Column 4 7698
Column 5 20-FEB-1981:00:00:00
Column 6 1600
Column 7 300
Column 8 30
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7521
Column 2 itpux03
Column 3 к
Column 4 7698
Column 5 22-FEB-1981:00:00:00
Column 6 1250
Column 7 500
Column 8 30
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7566
Column 2 itpux04
Column 3
Column 4 7839
Column 5 02-APR-1981:00:00:00
Column 6 2975
Column 7
Column 8 20
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7654
Column 2 itpux05
Column 3 к
Column 4 7698
Column 5 28-SEP-1981:00:00:00
Column 6 1250
Column 7 1400
Column 8 30
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7698
Column 2 itpux06
Column 3
Column 4 7839
Column 5 01-MAY-1981:00:00:00
Column 6 2850
Column 7
Column 8 30
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7782
Column 2 itpux07
Column 3
Column 4 7839
Column 5 09-JUN-1981:00:00:00
Column 6 2450
Column 7
Column 8 10
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7788
Column 2 itpux08
Column 3 ·
Column 4 7566
Column 5 19-APR-1987:00:00:00
Column 6 3000
Column 7
Column 8 20
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7839
Column 2 itpux09
Column 3
Column 4
Column 5 17-NOV-1981:00:00:00
Column 6 5000
Column 7
Column 8 10
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7844
Column 2 itpux10
Column 3 к
Column 4 7698
Column 5 08-SEP-1981:00:00:00
Column 6 1500
Column 7 0
Column 8 30
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7876
Column 2 itpux11
Column 3 τ
Column 4 7788
Column 5 23-MAY-1987:00:00:00
Column 6 1100
Column 7
Column 8 20
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7900
Column 2 itpux12
Column 3 τ
Column 4 7698
Column 5 03-DEC-1981:00:00:00
Column 6 950
Column 7
Column 8 30
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7902
Column 2 itpux13
Column 3 ·
Column 4 7566
Column 5 03-DEC-1981:00:00:00
Column 6 3000
Column 7
Column 8 20
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SCOTT.PK_EMP) violated
Column 1 7934
Column 2 itpux14
Column 3 τ
Column 4 7782
Column 5 23-JAN-1982:00:00:00
Column 6 1300
Column 7
Column 8 10 0 rows imported
. . importing table "SALGRADE" 5 rows imported
About to enable constraints...
Import terminated successfully with warnings.
如何查詢字符集
方法1:查詢表(在知道源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫):
select * from nls_database_parameters;
1 NLS_LANGUAGE AMERICAN
2 NLS_TERRITORY AMERICA
3 NLS_CURRENCY $
4 NLS_ISO_CURRENCY AMERICA
5 NLS_NUMERIC_CHARACTERS .,
6 NLS_CHARACTERSET ZHS16GBK --此處是顯示字符集
7 NLS_CALENDAR GREGORIAN
8 NLS_DATE_FORMAT DD-MON-RR
9 NLS_DATE_LANGUAGE AMERICAN
10 NLS_SORT BINARY
11 NLS_TIME_FORMAT HH.MI.SSXFF AM
12 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
13 NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
14 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
15 NLS_DUAL_CURRENCY $
16 NLS_COMP BINARY
17 NLS_LENGTH_SEMANTICS BYTE
18 NLS_NCHAR_CONV_EXCP FALSE
19 NLS_NCHAR_CHARACTERSET AL16UTF16
20 NLS_RDBMS_VERSION 11.2.0.4.0
方法2:在不知道dmp中字符集是什么,如何查看
1 查看dmp文件的中字符集
cat '/home/soft/scott.dmp' |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6
結(jié)果為:0345
2 然后用以下SQL查出它對(duì)應(yīng)的字符集:
SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;
NLS_CHARSET_NAME(TO_NUMBER('0354','XXXX'
----------------------------------------
ZHS16GBK
如何修改字符集
修改字符集有幾種方法
方法1、修改服務(wù)器端中的環(huán)境變量中的字符集設(shè)置(服務(wù)器端導(dǎo)入只要配置服務(wù)器端,客戶端導(dǎo)入的話還要設(shè)置客戶端字符集),注:此方法在服務(wù)器修改后再及時(shí)修改回去
方法2、修改數(shù)據(jù)庫中字符集
方法3、修改dmp文件中字符集
本環(huán)境是在服務(wù)器端導(dǎo)入的,所以采用方法1
1、查詢當(dāng)前環(huán)境變量
[oracle@localhost.localdomain:/soft]$cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
# Oracle Settings oracle
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
PS1="[`whoami`@`hostname`:"'$PWD]$'
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"
alias alert="cd /oracle/app/oracle/diag/rdbms/db01/db01/trace"
alias lsnrctl="rlwrap lsnrctl"
alias adrci="rlwrap adrci"
export LANG=en_US
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0; export ORACLE_HOME
ORACLE_SID=db01; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
2、配置環(huán)境變量
[oracle@localhost.localdomain:/soft]$vi ~/.bash_profile
3、查詢配置后信息
[oracle@localhost.localdomain:/soft]$cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
# Oracle Settings oracle
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
PS1="[`whoami`@`hostname`:"'$PWD]$'
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"
alias alert="cd /oracle/app/oracle/diag/rdbms/db01/db01/trace"
alias lsnrctl="rlwrap lsnrctl"
alias adrci="rlwrap adrci"
export LANG=en_US
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0; export ORACLE_HOME
ORACLE_SID=db01; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
#NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
NLS_LANG=AMERICAN_AMERICA.AL16UTF16;export NLS_LANG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
4、配置后可以通過SQL查詢修改后字符集是否變更
select * from nls_database_parameters;
5、再次重啟導(dǎo)入數(shù)據(jù)
[oracle@localhost.localdomain:/soft]$imp scott/scott file=/soft/scott_v1.dmp log=/soft/scott_v1.log1 ignore=y full=y
Import: Release 11.2.0.4.0 - Production on Sun Oct 22 16:46:17 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export file created by EXPORT:V11.02.00 via conventional path
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
. importing SCOTT's objects into SCOTT
. . importing table "BONUS" 0 rows imported
. . importing table "DEPT" 4 rows imported
. . importing table "EMP" 14 rows imported
. . importing table "SALGRADE" 5 rows imported
About to enable constraints...
Import terminated successfully without warnings.--此時(shí)導(dǎo)入比較成功,沒有報(bào)錯(cuò)了
知識(shí)延伸閱讀
測試的時(shí)候,本機(jī)oracle安裝采用了utf8字符集,而項(xiàng)目的要求是gbk字符集,為了防止以后有不同字符集數(shù)據(jù)信息導(dǎo)入導(dǎo)出的問題,整理以下文檔。
修改oracle字符集新裝了oracle,裝為AL32UTF8格式,無奈一個(gè)工程導(dǎo)出包是ZHS16GBK格式,想了想辦法轉(zhuǎn)換,以下是學(xué)習(xí)
一、什么是oracle字符集
Oracle字符集是一個(gè)字節(jié)數(shù)據(jù)的解釋的符號(hào)集合,有大小之分,有相互的包容關(guān)系。ORACLE 支持國家語言的體系結(jié)構(gòu)允許你使用本地化語言來存儲(chǔ),處理,檢索數(shù)據(jù)。它使數(shù)據(jù)庫工具,錯(cuò)誤消息,排序次序,日期,時(shí)間,貨幣,數(shù)字,和日歷自動(dòng)適應(yīng)本地化語言和平臺(tái)。
影響oracle數(shù)據(jù)庫字符集最重要的參數(shù)是NLS_LANG參數(shù)。它的格式如下:
NLS_LANG = language_territory.charset
它有三個(gè)組成部分(語言、地域和字符集),每個(gè)成分控制了NLS子集的特性。其中:
Language 指定服務(wù)器消息的語言,territory 指定服務(wù)器的日期和數(shù)字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK
從NLS_LANG的組成我們可以看出,真正影響數(shù)據(jù)庫字符集的其實(shí)是第三部分。所以兩個(gè)數(shù)據(jù)庫之間的字符集只要第三部分一樣就可以相互導(dǎo)入導(dǎo)出數(shù)據(jù),前面影響的只是提示信息是中文還是英文。
二、如何查詢Oracle的字符集
很多人都碰到過因?yàn)樽址煌箶?shù)據(jù)導(dǎo)入失敗的情況。這涉及三方面的字符集,一是oracel server端的字符集,二是oracle
client端的字符集;三是dmp文件的字符集。在做數(shù)據(jù)導(dǎo)入的時(shí)候,需要這三個(gè)字符集都一致才能正確導(dǎo)入。開始—運(yùn)行—sqlplus,用戶名輸入:system
as sysdba
密碼:XXXX
1、查詢oracle server端的字符集
有很多種方法可以查出oracle server端的字符集,比較直觀的查詢方法是以下這種:SQL>select userenv(‘language’) from dual;
結(jié)果類似如下:AMERICAN _ AMERICA. ZHS16GBK (本機(jī)結(jié)果SIMPLIFIED CHINESE_CHINA.AL32UTF8)
2、如何查詢dmp文件的字符集
用oracle的exp工具導(dǎo)出的dmp文件也包含了字符集信息,dmp文件的第2和第3個(gè)字節(jié)記錄了dmp文件的字符集。如果dmp文件不大,比如只有幾M或幾十M,可以用UltraEdit打開(16進(jìn)制方式),看第2第3個(gè)字節(jié)的內(nèi)容,如0354,然后用以下SQL查出它對(duì)應(yīng)的字符集:
SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;
ZHS16GBK
如果dmp文件很大,比如有2G以上(這也是最常見的情況),用文本編輯器打開很慢或者完全打不開,可以用以下命令(在unix主機(jī)上):
cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6
然后用上述SQL也可以得到它對(duì)應(yīng)的字符集。
3、查詢oracle client端的字符集
這個(gè)比較簡單。在windows平臺(tái)下,就是注冊(cè)表里面HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANG 。還可以在dos窗口里面自己設(shè)置,比如:
set nls_lang=AMERICAN_AMERICA.ZHS16GBK
這樣就只影響這個(gè)窗口里面的環(huán)境變量。
在unix平臺(tái)下,就是環(huán)境變量NLS_LANG。
$echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
如果檢查的結(jié)果發(fā)現(xiàn)server端與client端字符集不一致,請(qǐng)統(tǒng)一修改為同server端相同的字符集。
三、修改oracle的字符集
上文說過,oracle的字符集有互相的包容關(guān)系。如us7ascii就是zhs16gbk的子集,從us7ascii到zhs16gbk不會(huì)有數(shù)據(jù)解釋上的問題,不會(huì)有數(shù)據(jù)丟失。在所有的字符集中utf8應(yīng)該是最大,因?yàn)樗趗nicode,雙字節(jié)保存字符(也因此在存儲(chǔ)空間上占用更多)。
一旦數(shù)據(jù)庫創(chuàng)建后,數(shù)據(jù)庫的字符集理論上講是不能改變的。因此,在設(shè)計(jì)和安裝之初考慮使用哪一種字符集十分重要。根據(jù)Oracle的官方說明,字符集的轉(zhuǎn)換是從子集到超集受支持,反之不行。如果兩種字符集之間根本沒有子集和超集的關(guān)系,那么字符集的轉(zhuǎn)換是不受oracle支持的。對(duì)數(shù)據(jù)庫server而言,錯(cuò)誤的修改字符集將會(huì)導(dǎo)致很多不可測的后果,可能會(huì)嚴(yán)重影響數(shù)據(jù)庫的正常運(yùn)行,所以在修改之前一定要確認(rèn)兩種字符集是否存在子集和超集的關(guān)系。一般來說,除非萬不得已,我們不建議修改oracle數(shù)據(jù)庫server端的字符集。特別說明,我們最常用的兩種字符集ZHS16GBK和ZHS16CGB231280之間不存在子集和超集關(guān)系,因此理論上講這兩種字符集之間的相互轉(zhuǎn)換不受支持。
1、修改server端字符集(不建議使用)
在oracle 8之前,可以用直接修改數(shù)據(jù)字典表props$來改變數(shù)據(jù)庫的字符集。但oracle8之后,至少有三張系統(tǒng)表記錄了數(shù)據(jù)庫字符集的信息,只改props$表并不完全,可能引起嚴(yán)重的后果。正確的修改方法如下:
$sqlplus /nolog
SQL>conn / as sysdba;
以上方法測試不行,用scott/tiger登陸sqlplus然后connect sys/sys as sysdba,然后輸入命令即可
若此時(shí)數(shù)據(jù)庫服務(wù)器已啟動(dòng),則先執(zhí)行SHUTDOWN IMMEDIATE命令關(guān)閉數(shù)據(jù)庫服務(wù)器,然后執(zhí)行以下命令:
SQL>STARTUP MOUNT;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK; //跳過超子集檢測
SQL>ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK;
這一行不起作用,執(zhí)行后出錯(cuò)ORA-00933: SQL 命令未正確結(jié)束,不過執(zhí)行上一行命令已經(jīng)生效,其他文章里未提到本行。
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP
2、修改dmp文件字符集
上文說過,dmp文件的第2第3字節(jié)記錄了字符集信息,因此直接修改dmp文件的第2第3字節(jié)的內(nèi)容就可以‘騙’過oracle的檢查。這樣做理論上也僅是從子集到超集可以修改,但很多情況下在沒有子集和超集關(guān)系的情況下也可以修改,我們常用的一些字符集,如US7ASCII,WE8ISO8859P1,ZHS16CGB231280,ZHS16GBK基本都可以改。因?yàn)楦牡闹皇莇mp文件,所以影響不大。
具體的修改方法比較多,最簡單的就是直接用UltraEdit修改dmp文件的第2和第3個(gè)字節(jié)。比如想將dmp文件的字符集改為ZHS16GBK,可以用以下SQL查出該種字符集對(duì)應(yīng)的16進(jìn)制代碼:
SQL> select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;
0354
然后將dmp文件的2、3字節(jié)修改為0354即可。
如果dmp文件很大,用ue無法打開,就需要用程序的方法了。網(wǎng)上有人用java存儲(chǔ)過程寫了轉(zhuǎn)換的程序(用java存儲(chǔ)過程的好處是通用性教好,缺點(diǎn)是比較麻煩)。我在windows下測試通過。但要求oracle數(shù)據(jù)庫一定要安裝JVM選項(xiàng)。有興趣的朋友可以研究一下程序代碼
在注冊(cè)表中更改ORACLE的字符集編碼方式的操作:regedit
注冊(cè)表路徑:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
把 NLS_LANG 的值從 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
改為 AMERICAN_AMERICA.US7ASCII american_america.we8dec
PS:
Oracle UTF8 編碼問題
其實(shí)這是一個(gè)老問題,處理過多次了,每次都沒有記住,這次決定寫下來了。 其實(shí)很簡單,
1)Oracle其實(shí)非常好,它會(huì)自動(dòng)處理編碼的轉(zhuǎn)換。
2)客戶端(輸入數(shù)據(jù)的機(jī)器)保證自結(jié)數(shù)據(jù)不出錯(cuò)就好了。
在這個(gè)基礎(chǔ)上,要用Oracle,并且用UTF8(多數(shù)情況下是為了應(yīng)付多語言)存儲(chǔ)數(shù)據(jù),只需要做兩件事情:
a)Oracle數(shù)據(jù)庫的實(shí)例的編碼設(shè)置為UTF8;(NLS_LANG=AMERICAN _ AMERICA.UTF8)
b)數(shù)據(jù)文件是什么編碼,就將客戶端設(shè)置為什么編碼(例如NLS_LANG=AMERICAN _ AMERICA.ZHS16GBK 在注冊(cè)表中修改),然后用工具導(dǎo)入數(shù)據(jù)。
就可以了--在Java程序中可以盡情使用UTF8來顯示中日韓等多國語言了
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。