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...