一般來說,oracle數據導出spool方式,中文出現亂碼,這情況是因為數據庫服務器和客戶端字符集不匹配,執行sqlplus的機器就是客戶端,服務器和客戶端也可能是一臺機器,執行sqlplus之前要先設置客戶端的字符集,在linux上:export NLS_LANG=.......
成都創新互聯主要從事網站設計、網站建設、網頁設計、企業做網站、公司建網站等業務。立足成都服務澤普,十多年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18980820575
在windows上set NLS_LANG查詢數據庫字符集:select property_value from database_properties where property_name like 'NLS_CHAR%';
1、比如查詢結果是:ZHS16GBK
那你在sqlplus之前要設置:export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
然后再登錄sqlplus用spool生成數據
檢查下你導出時候的環境變量,導入時的環境變量
2、比如導出時NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
導入時NLS_LANG沒有設置,或者設置為其他字符集,則導入的庫內漢字就有可能變成亂碼。
解決方法,連接數據庫的時候設置正確字符集即可。
1、對于Oracle Enterprise Manager中的所有工具,有一個配置文件名為dbappscfg.properties,修改該文件即可解決上述問題。這個文件的位置在$ORACLE_HOME\sysman\config目錄下,用任何的文本編輯器打開該文件,在這個文件里面,找到這樣一項,
# SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
2、去掉注釋符#,同時將其修改為
SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
3、對于Windows操作系統,還需要修改一項,在文件中找到# SQLPLUS_SYSTEMROOT=c:\\WINNT40,去掉注釋符,將其修改為你所在機器的操作系統主目錄。如操作系統的主目錄在D盤的Winnt下,則將其修改為
SQLPLUS_SYSTEMROOT=d:\\WINNT。
對于后面一項的修改只對Windows操作系統進行,對UNIX操作系統則不需要。如果在Windows操作系統中不修改該項,在Oracle Enterprise Manager中,連接系統時,會提示如下的錯誤:
ORA-12560 TNS:protocol adapter error
或者
ORA-12545 Connect failed because target host or object does not exist
4、修改完成后,保存文件,退出編輯。重新連接SQL PLUS Worksheet,字符集亂碼問題得到解決,顯示正確的簡體中文字符集。
問題: 使用Oracle Instant Client 出現 ORA-12705: Cannot access NLS data files or invalid environment specified 錯誤。
如果是Windows平臺,注冊表里 \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 查找鍵 NLS_LANG,這個鍵由Oracle標準客戶端安裝創建, 值是 NA 。這個導致了 ORA-12705錯誤。解決方法就是改名 NLS_LANG。
Linux下 如果環境變量 NLS_LANG 值是NA 會引起 ORA-12705 錯誤,解決方法是刪除這個變量
unset NLS_LANG
可能是字符集不一致造成的,字符集有數據庫字符集和客戶端字符集,對你這種情況來說,導出和導入都要涉及,也就是說你要保證4個字符集都一致才行
exp時源數據庫字符集,客戶端字符集
imp時目標數據庫字符集和客戶端字符集
如果你就在數據庫服務器上導出或者導入,那么你這機器既作為數據庫服務器也做導入導出客戶端
字符集的問題
如果是應用應用服務器連接的數據庫,查看和修改應用服務器的字符集與oracle數據庫字符集是否一致。
如果是通過oracle客戶端(包括pl/sql developer )等連接的數據庫,查看和修改該客戶端使用的oraclehome的字符集設置,一般在注冊表中。具體根據使用的oracle客戶端查找。
應該是你倒出或者是倒入時用錯了客戶端的字符集,或者是源庫和目標庫的字符集本身就不兼容
分別在源庫和目標庫查詢一下數據庫字符集:
select value$ from props$ where name like 'NLS_CHAR%';
看它們是否一致,如果不一致,基本上你就不能用導入的方法來在這兩庫之間遷移這個數據
如果一致,再檢查一下導出和導入所用機器的字符集(客戶端字符集),windows要看注冊表,UNIX要看操作系統用戶的環境變量
1,修改Oralce的編碼格式
2,修改主機的編碼格式
3,查看自己導入的數據是否已經亂碼
名稱欄目:oracle如何導入亂碼 oracle數據庫中添加數據亂碼怎么解決
標題URL:http://vcdvsql.cn/article6/hpipog.html
成都網站建設公司_創新互聯,為您提供做網站、全網營銷推廣、手機網站建設、網站排名、用戶體驗、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯