Oracle Sql Loader中文字元匯入亂碼的解決方案

cooler發表於2009-05-25
Oracle Sql Loader中文字元匯入亂碼的解決方案[@more@]伺服器端字符集NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

控制檔案ctl:
LOAD DATA
CHARACTERSET ZHS16GBK
INFILE 'c:test.csv'
APPEND INTO TABLE stk_al_version
FIELDS TERMINATED BY ","
(org_no,stk_c,version,name)

加入紅色這段文字

匯入成功

檢視和修改Oracle伺服器端字符集:

方法一:

1) 檢視伺服器端字符集:

select * from v$nls_parameters;

select * from nls_database_parameters;

select * from sys.props$;

2) 修改伺服器端字符集(用sys使用者):

首先執行:update props$ set value$ = 'WE8ISO8859P1' where name ='NLS_CHARACTERSET';

update props$ set value$ = 'china' where name ='NLS_LANGUAGE';

提交(commit),然後,重新啟動資料庫;

3)用客戶端工具(PL/SQL DEVELOP or PB etc.)查詢資料庫,若顯示亂碼,先查詢出資料庫端的字符集,然後,從登錄檔中修改NLS_LANG欄位的值,可能為AMERICAN_AMERICA.WE8ISO8859P1或者SIMPLIFIED CHINESE_CHINA.ZHS16GBK或者NA等。

方法二:

alter system enable restricted session;

alter database ORCL character set ZHS16GBK;

alter database ORCL national character set ZHS16GBK;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/93880/viewspace-1022472/,如需轉載,請註明出處,否則將追究法律責任。

相關文章