Oracle亂碼的問題

2022-09-16 22:30:19 字數 1703 閱讀 8168

1.sql指令碼直接能執行但是以sql檔案不能執行

sql正常,由txt轉換為sql檔案後,資料庫執行報錯,解決辦法是將sql檔案中資料取出放到新檔案中,新檔案儲存時直接以sql格式儲存。

2.亂碼問題

1.如果匯入到plsql中顯示亂碼,首先檢視sql的儲存格式,修改成utf-8

2.檢視伺服器端編碼—

select userenv('language') from dual;

我實際查到的結果為: simplified chinese_china.zhs16gbk

(american_america.al32utf8)這個也是常用的  american_america.zhs16gbk

如果不正確的話設定方法:----在oracle的資料上去執行的

[oracle@oracle ~]$ sqlplus /nolog

conn /as sysdba;

select userenv('language') from dual;

shutdown immediate

startup mount

alter system enable restricted session;

alter system set job_queue_processes=0;

alter system set aq_tm_processes=0;

alter database open;

alter database character set internal_use zhs16gbk;

shutdown immediate;

startup;

檢視一下是否修改過來

select userenv('language') from dual;

3.客戶端

執行語句 select * from v$nls_parameters  

檢視第一行中parameter項中為nls_language 對應的value項中是否和第一步得到的值一樣。

或者途中的nls_language和nls_characterset中的value的值加到一起和伺服器中額編碼是否一致。

如果不是,需要設定環境變數.或者修改登錄檔 regedit

nls_lang

否則plsql客戶端使用的編碼和伺服器端編碼不一致,插入中文時就會出現亂碼.

2.unix/linux環境,檢視和修改nls_lang變數的方法

1)檢視方法,在oracle使用者下使用env命令獲得系統的環境變數列表,然後使用grep命令定位到「nls_lang」內容

$ env | grep nls_lang

nls_lang=american_america.zhs16gbk

2)修改方法:使用export命令設定該環境變數

$ nls_lang=american_america.zhs16gbk

$ export nls_lang

很全的知識

Oracle 亂碼問題

出現中文亂碼的主要原因是字符集不同。在oracle中,我們關心三個地方的字符集 l oracle伺服器內部的字符集 l nls lang變數裡儲存的字符集 l 客戶端應用的字符集 oracle伺服器內部的字符集 這是oracle資料庫儲存資料使用的字符集。在oracle中可能使用 select us...

ORACLE亂碼問題的解決

使用sqlplus連線oracle資料庫的時候,老是出現?一類的字元,主要是因為 伺服器和客戶端語言設定不相同。日文環境下 伺服器端的設定為 ja16sjis,客戶端沒有作設定就出現了上述現象。請將環境變數設值為 csh setenv nls lang american japan.ja16sjis...

Oracle中文亂碼問題

select userenv language from dual 實際檢視到的結果為 simplified chinese china.al32utf8 檢視第一行中parameter項中為nls language 對應的value項中是否和第一步得到的值一樣。如果不是,需要設定環境變數.否則pl...