求教 ORACLE修改字符集後,之前的資料會不會出現亂碼

時間 2022-03-25 17:15:03

1樓:匿名使用者

如果你把服務端的字符集修改成gbk,伺服器上原本的資料肯定會亂碼的,但你用gbk匯入去的資料就會恢復正常,但有一個問題,就是你用客戶端字符集為gbk的導進去utf8的服務端裡,資料會有所丟失的,因為gbk是佔的位數要比utf8要多,你在建立表的時候字長設定得不夠大的欄位,會報資料溢位的錯誤,因此資料會丟失。

至於解決方法,我實在想不出,只能是捨棄那邊資料不那麼重要那邊的資料,把兩邊的字符集弄成一樣再進行匯出匯入

2樓:匿名使用者

1。select * from v$nls_parameters

查詢nls的引數,獲得資料庫伺服器端的字元編碼

nls_language

nls_characterset

2。修改本地環境變數,設定

nls_lang = simplified chinese.zhs16gbk //這個是我們的資料庫字元編碼

nls_lang格式:

nls_lang = language_territory.charset

有三個組成部分(語言、地域和字符集),每個成分控制了nls子集的特性。其中:language 指定伺服器訊息的語言。

territory 指定伺服器的日期和數字格式。

charset 指定字符集

需要保證要設定客戶端字符集與伺服器端字符集一致

引自

3樓:匿名使用者

ertretertertretretreterter

如何解決oracle資料庫因字符集出現的亂碼問題

4樓:千鋒教育

oracle資料庫查詢時出現亂碼,很可能是該資料庫的字符集設定不支援中文,但是表中資料含有中文,所以變為亂碼。

如果是字符集原因,解決方法如下:

1、shutdown immediate; 關閉資料庫

2、startup mount; 開啟資料庫至掛載模式(只掛例項,不啟動資料庫)

3、alter system enable restricted session;開啟會話限制

4、alter system set aq_tm_processes=0;修改系統引數

5、alter system set job_queue_processes=0;修改系統引數

6、alter database open;啟動資料庫為open

7、alter database national character set internal_user (zhs16gbk);修改字符集

8、alter system disable restricted session;關閉會話限制

括號內可填寫字符集型別,zhs16gbk、al32utf8等字符集都支援中文。

我把所有能設定字符集的地方全部設定為utf8了,中文依然讀寫資料庫的是亂碼? 20

5樓:匿名使用者

編碼問題,具體情況具體分析,不一定需要所有編碼方式都一致,需要的是,資料發出方用什麼編碼發出的資料,資料接收方就用什麼編碼去接,要把資料流轉的過程搞清楚,每個環節的編碼方式對齊,出了問題也是一個環節一個環節地排除。比如,你說資料庫(假如是oracle資料庫)是utf8的,你就用pl/sql去讀一下,讀出來的資料用utf8解析看看會不會亂碼,然後在後臺用utf8解析成string,列印一下看看會不會亂碼,然後考慮用什麼編碼方式發到前臺,前臺用什麼方式接收,就這樣一個環節一個環節地排除。需要注意的是,瀏覽器預設的資料解析編碼是gbk的,看看是不是需要指定一下。

6樓:匿名使用者

資料庫字符集是utf8嘛

oracle 查詢結果為什麼有時候會出現亂碼

7樓:水旁興頭小倒立

查客戶端的登錄檔,看語言設得和服務端是否一樣:

hkey_local_machine\software\oracle\home0\nls_lang

不一樣會有亂碼

8樓:匿名使用者

在伺服器可以切換到oracle使用者,執行:echo $nls_lang,看看伺服器是怎麼設的。把你本地的登錄檔也改成和伺服器一致的字符集:

hkey_local_machine\software\oracle\home0\nls_lang

。重啟工具,一般都可以解決亂碼的問題。

oracle修改字符集後,所有的中文資料變成亂碼!請問怎麼解決。

9樓:櫻空

1。select * from v$nls_parameters查詢nls的引數,獲得資料庫伺服器端的字元編碼nls_language

nls_characterset

2。修改本地環境變數,設定

nls_lang = simplified chinese.zhs16gbk //這個是我們的資料庫字元編碼

nls_lang格式:

nls_lang = language_territory.charset

有三個組成部分(語言、地域和字符集),每個成分控制了nls子集的特性。其中:language 指定伺服器訊息的語言。

territory 指定伺服器的日期和數字格式。

charset 指定字符集

需要保證要設定客戶端字符集與伺服器端字符集一致

oracle 亂碼 如何解決

10樓:匿名使用者

這些問題,一般是因為字符集設定不對造成的。

很久以來,字符集一直是困擾著眾多oracle愛好者的問題,筆者從事oracle資料庫管理和應用已經幾年了,經常接到客戶的類似上面提到的有關資料庫字符集的「告急」和「求救」,在此我們就這個問題做一些分析和**。

首先,我們要明確什麼是字符集?字符集是一個位元組資料的解釋的符號集合,有大小之分,有相互的包括關係,如us7ascii就是zhs16gbk的子集, 從us7ascii到zhs16gbk不會有資料解釋上的問題,不會有資料丟失,oracle對這種問題也要求從子集到超集的匯出受支援,反之不行。在所有的字符集中utf8應該是最大,因為它基於unicode,雙位元組儲存字元(也因此在儲存空間上佔用更多)。

其次,一旦資料庫建立後,資料庫的字符集是不能改變的。因此,在設計和安裝之初考慮使用哪一種字符集是十分重要的。資料庫字符集應該是作業系統本地字符集的一個超集。

存取資料庫的客戶使用的字符集將決定選擇哪一個超集,即資料庫字符集應該是所有客戶字符集的超集。

在實際應用中,和字符集問題關係最大的恐怕就是exp/imp了。在做exp/imp時,如果client 和server的nls_lang設定是一樣的,一般就沒有問題的。但是,要在兩個不同字符集的系統之間導資料就經常會有這樣或那樣的問題,如,匯出時資料庫的顯示正常,是中文,當匯入到其他系統時,就成了亂碼,這也是一類常見問題。

11樓:匿名使用者

你把你插入的sql語句顯示出來看,看下是不是亂碼,一般情況下oracle不會發生亂碼,很有可能是程式出來問題,

12樓:匿名使用者

select出來的都是亂碼的,據說是字符集的問題,我沒整明白怎麼改

oracle:pl/sql中用sql語句新增資料 中文出現亂碼問題?[有圖]

13樓:

不加n?

insert into table

values(.....,n'中文',...)這種模式,而且列必須為nvarchar格式才能儲存中文不亂碼

14樓:匿名使用者

用這個查詢oracle的編碼型別,看與你插入的是否一致

select * from nls_database_parameters where parameter ='nls_characterset';

15樓:匿名使用者

資料庫設定的編碼有問題

Oracle密碼過期怎麼修改,oracle資料庫密碼過期怎麼修改密碼

育知同創教育 開啟cmd,輸入sqlplus nolog,回車。2 輸入 conn as sysdba 3 輸入 alter user sys identified by 新密碼 注意 新密碼最好以字母開頭,否則可能出現錯誤ora 00988。有了這個方法後,只要自己對oracle伺服器有管理員許可...

oracle不能修改密碼,怎麼修改oracle使用者密碼

oracle修改密碼主要有以下方法 一 alter命令 如 修改user使用者的密碼為user01 alter user user01 identified by usr01 二 password命令 當使用者輸入password命令時,系統將提示使用者輸入舊口令和新口令 password 你是想問...

求教高手 IE主頁被惡意修改無法恢復

我可以負責任的說我碰見的和你是一樣的 別的朋友也遇見了很多主頁被篡改的問題,我給了他們我的解決方法,但是都不一樣的 只有和你相同,所以你一定能解決得!樓主說的問題我上兩天也遇見了,給我鬱悶壞了,試了很多朋友提出的辦法都不好使,包括修改什麼登錄檔啊,用超級兔子,360安全衛士,黃山,金山等等,幾乎所有...