oracle導入sql文件亂碼
① sql資料庫Text類型欄位導出oracle數據時亂碼怎麼解決
如果所有導出的全形字元都是亂碼的話,應該是字元集編碼格式不同引起的。需要注意的是要保證導出和導入時的字元集是統一的,或是子集與超集的關系。
② oracle sql developer 查詢亂碼和文件打開亂碼問題
SqlConnection con = new SqlConnection
con.Open();
string sqlstr = "sql語句";
SqlDataAdapter da = new SqlDataAdapter(sqlstr, con);
DataSet ds= new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
con.Close();
③ 我的oracle sql develop 一打開.sql文件就亂碼 哪裡的問題
你看看,你.sql文件里是全部亂碼還是只有中文之類的是亂碼
只有中文部分亂碼的話,你先用文本打開,粘貼過去
如果是全部亂碼,估計是你字元集有問題
④ oracle資料庫(PLSQL)導入.sql文件出錯:無效的字元集
file--new--command
window,打開後執行:@目錄:\wj.sql;
然後回車。例如文件在e盤,就是
@e:\wj.sql;
⑤ Oracle數據出現中文亂碼怎麼解決
1. 伺服器指定字元集與客戶字元集不同,而與載入數據字元集一致。
解決方法:對於這種情況,只需要設置客戶端字元集與伺服器端字元集一致就可以了,具體操作如下:
* 查看當前字元集:
SQL> select * from sys.props$
2 WHERE NAME=『NLS_CHARACTERSET』;
NAME value$
NLS_CHARACTERSET ZHS16GBK
可以看出,現在伺服器端Oracle資料庫的字元集為『ZHS16GBK』
* 根據伺服器的字元集在客戶端作相應的配置或者安裝Oracle的客戶端軟體時指定:
如果還沒安裝客戶端,那麼在安裝客戶端時,指定與伺服器相吻合的字元集即可;如果已經安裝好了客戶端,並且客戶端為 sql*net 2.0 以下版本,進入Windows的系統目錄,編輯oracle.ini文件,用US7ASCII替換原字元集,重新啟動計算機,設置生效;否則,如果,客戶端為 sql*net 2.0 以上版本,在Win98 下 運 行REGEDIT,第一步選HKEY_LOCAL_MACHINE,第二步選擇SOFTWARE, 第三步選擇 Oracle, 第四步選擇 NLS_LANG, 鍵 入 與服 務 器 端 相 同 的 字 符 集
(本例為:HKEY_LOCAL_MACHINE/
SOFTWARE/ORACLE/NLS_LANG :AMERICAN _ AMERICA. ZHS16GBK)。
如果是UNIX客戶端,則:
SQL> conn / as sysdba
Connected.
SQL> SQL> UPDATE sys.PROPS$ SET value$=『SIMPLIFIED CHINESE』
2 WHERE NAME=『NLS_LANGUAGE』;
2. 伺服器指定字元集與客戶字元集相同,與載入數據字元集不一致。
解決方法:強制載入數據字元集與伺服器端字元集一致。要做到這一點,可以通過重新創建資料庫,並選擇與原卸出數據一致的字元集,然後IMP數據,這種情況僅僅適用於空庫和具有同一種字元集的數據。
解決這類問題,也可以先將數據載入到具有相同字元集的伺服器上,然後用轉換工具卸出為foxbase 格式或access格式資料庫,再用轉換工具轉入到不同字元集的Oracle資料庫中,這樣就避免了Oracle字元集的困擾。目前資料庫格式轉換的工具很多,像power builder5.0以上版本提供的pipeline及Microsoft Access資料庫提供的數據導入/導出功能等。
3. 伺服器指定字元集與客戶字元集不同,與輸入數據字元集不一致。
對於這種情況,目前為止都還沒有太好的解決方法。
通過上面的了解,我們知道,導致在後期使用資料庫時出現種種關於字元集的問題,多半是由於在資料庫設計、安裝之初沒有很好地考慮到以後的需要,所以,我們完全可以通過在伺服器上和客戶端使用相同的字元集來避免由此類問題引出的麻煩
怎樣修改查看Oracle字元集
a.資料庫伺服器字元集select * from nls_database_parameters,其來源於props$,是表示資料庫的字元集。
b.客戶端字元集環境select * from nls_instance_parameters,其來源於v$parameter,
表示客戶端的字元集的設置,可能是參數文件,環境變數或者是注冊表
c.會話字元集環境 select * from nls_session_parameters,其來源於v$nls_parameters,表示會話自己的設置,可能是會話的環境變數或者是alter session完成,如果會話沒有特殊的設置,將與nls_instance_parameters一致。
客戶端的字元集要求與伺服器一致,才能正確顯示資料庫的非Ascii字元。如果多個設置存在的時候,alter session>環境變數>注冊表>參數文件
實際情況
我用select * from nls_database_parameters
PARAMETER VALUE
------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
PARAMETER VALUE
------------------------------ ------------------------------
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 10.2.0.1.0
說明我在創建資料庫時指定的字元集是ZHS16GBK,我用
update sys.props$ set value$='AL32UTF8' where name='NLS_CHARACTERSET';
修改了字元集,但插入中文時仍然有問題,這或許就如上面資料所說的通過修改SYS.PROPS$來修改主要是對應客戶端的顯示,與存儲無關,
所以仍舊是亂碼。
然後我重新創建了個資料庫,指定字元集為AL32UTF8,插入中文就沒問題了。
可見我們如果要在資料庫中顯示中文,在創建資料庫時一定喲指定好所用的字元集。
⑥ Oracle:PL/SQL中用SQL語句添加數據 中文出現亂碼問題[有圖]
說明資料庫不支持中文,修改為GBK或者Utf-8就可以了。
;改完編碼後執行
sql>conn/assysdba;
sql>shutdownimmediate;
databaseclosed.
databasedismounted.
oracleinstanceshutdown.
sql>startupmount;
oracleinstancestarted.
fixedsize452044bytes
variablesize109051904bytes
databasebuffers25165824bytes
redobuffers667648bytes
databasemounted.
sql>;
systemaltered.
sql>altersystemsetjob_queue_processes=0;
systemaltered.
sql>altersystemsetaq_tm_processes=0;
systemaltered.
sql>alterdatabaseopen;
databasealtered.
sql>_useUTF-8;
sql>shutdownimmediate;
sql>startup;
查看資料庫編碼格式:select userenv('language') from al;
如果資料庫格式支持中文,那麼就要看下執行的sql是不是本身就有亂碼了。
⑦ 在linux 下安裝的oracle 導入的sql文件 中文全是亂碼
第一種情況:你看看原來sql文件里的中文編碼格式是gb2312還是unicode,應該是unicode才可以正常顯示
第二種情況:你的linux下沒裝漢字識別,想辦法讓你的linux識別漢字就可以了。
⑧ 資料庫為Oracle ,導入編碼為UTF-8的.sql文件,用PL/SQL導入,結果數據出現中文亂碼
你資料庫的字元集,與你導入的字元集一致嗎? r如果不一致就會出現亂碼情況。
最簡單的方法,入過你資料庫是新的,沒東西,就改資料庫的字元集,如果是老的,那麼你最好是吧文件改了,字元集一致就沒有問題了
⑨ Oracle資料庫導入sql文件的時候報錯
報錯是表或視圖不存在.
這張表是你自己建立的還是系統自帶的.我忘了系統是不是自帶這張表了,如果是系統自帶的,那麼後面應該有s,也就是說表名應該是sys_users.如果是你自己建立的,那麼就好好找找吧,應該是沒建立成功吧。
⑩ oracle 10g 導入資料庫是 中文描述成了亂碼
可能原因一:導入資料庫不支持中文。這種情況可以修改下編碼格式。
sql> conn / as sysdba;
sql> shutdown immediate;
database closed.
database dismounted.
oracle instance shut down.
sql> startup mount;
oracle instance started.
total system global area 135337420 bytes
fixed size 452044 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
database mounted.
sql> alter system enable restricted session;
system altered.
sql> alter system set job_queue_processes=0;
system altered.
sql> alter system set aq_tm_processes=0;
system altered.
sql> alter database open;
database altered.
sql> alter database character set internal_use UTF-8;
sql> shutdown immediate;
sql> startup;
可能原因二:導入資料庫和之前的導出資料庫的編碼格式不一致。這種情況只能是查看下源資料庫的編碼格式,之後通過上面的方法來進行編碼格式修改了。
備註:
查看資料庫編碼格式sql:select userenv('language') from al;