1. 程式人生 > >Oracle資料庫檢視編碼和修改編碼

Oracle資料庫檢視編碼和修改編碼

首先檢視oracle資料庫的編碼


SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';


PARAMETER
--------------------
VALUE
--------------------
NLS_CHARACTERSET
AL32UTF8


這其來源於props$,這是表示資料庫的字符集。


oracle客戶端編碼


SQL> select * from nls_instance_parameters where parameter='NLS_LANGUAGE';


PARAMETER
--------------------
VALUE
--------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE


其來源於v$parameter,表示客戶端的字符集的設定,可能是引數檔案,環境變數或者是登錄檔會話字符集環境


select * from nls_session_parameters,其來源於v$nls_parameters,表示會話自己的設定,可能是會話的環境變數或者是alter session完成,如果會話沒有特殊的設定,將與nls_instance_parameters一致。


再來說一下怎麼修改oracle的字符集:


目前我的資料庫環境的字符集是AL32UTF8,那麼把它改成ZHS16GBK


1.首先以sysdba的身份登入上去 conn system/orcl as sysdba


2.關閉資料庫shutdown immediate;


3.以mount打來資料庫,startup mount


4.設定session 


 SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;


5.啟動資料庫


alter database open;


6.修改字符集


ALTER DATABASE CHARACTER SET ZHS16GBK;


這會可能會報錯,提示我們的字符集:新字符集必須為舊字符集的超集,這時我們可以跳過超集的檢查做更改:


 ALTER DATABASE character set INTERNAL_USE ZHS16GBK;


這條語句就可以了,TERNAL_USE提供的幫助就會使oracle繞過了子集與超集的驗證,這條語句和上面的語句內部操作時完全相同的。


7.關閉,重新啟動


SQL>shutdown immediate;
SQL> startup


當然字符集最好不要輕易修改,因為這會對資料庫的資料有直接的影響,可能會造成亂碼。我們就碰到類似的問題,改變編碼後資料庫資料在資料庫查詢是正常的,在系統顯示確實亂碼,必須重新匯入資料才恢復正常。因此改變編碼需要謹慎。

原文連結

相關推薦

Oracle資料庫檢視編碼修改編碼

首先檢視oracle資料庫的編碼 SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; PARAMETER -------------------- VALUE

檢視oracle資料庫是否歸檔修改歸檔模式

分為非歸檔模式(NOARCHIVELOG) 和歸檔模式(ARCHIVELOG)。非歸檔模式不產生歸檔日誌,雖然節省了硬碟空間,但是備份方案選擇很有限,通常只能選擇冷備份。還原也只能還原到備份那一時刻的資料,通常也僅在開發時使用(據說在資料倉庫中也使用),Oracle安裝預設

檢視oracle資料庫編碼修改編碼格式的方法

首先檢視oracle資料庫的編碼 ? 1 SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; PARAMETER --------------------

MySQL:檢視全域性變數修改編碼

mysql配置有很多變數,可以用show語句檢視,如: show variables like "datadir"; -- 輸出: +---------------+-----------------+ | Variable_name | Value | +-----

linux檢視系統編碼修改系統編碼的方法

# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESS

oracle檢視編碼以及修改編碼

首先檢視oracle資料庫的編碼 SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; PARAMETER -------------------- VALUE

oracle資料庫亂碼解決,字符集編碼問題

一、問題描述:        在將其它資料庫的資料匯出檔案匯入本地新建資料庫時,所匯入的資料全部是亂碼,一般表現為資料表中列的值類似於"?????",即內容大部分為?的表現形式。初步判斷是因為Oracle客戶端與資料庫編碼不一

檢視ORACLE 資料庫的表列的相關資訊

本文全部轉載自:http://www.cnblogs.com/tearer/archive/2012/12/13/2815601.html 供自己收藏學習。 -------------------------------------------------------------------

檢視oracle資料庫的使用者名稱密碼

執行 cmd 按如下輸入命令 sqlplus / as sysdba ---------以sys登陸 超級使用者(sysdba) alter user 使用者名稱 account unlock; --------- 解除鎖定(必須帶“;”號)

oracle資料庫檢視解除死鎖

檢視死鎖: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode, SESS.machine from v$locked_object lo, dba_o

linux下檢視檔案編碼修改編碼

1.在Vim中可以直接檢視檔案編碼 :set fileencoding 即可顯示檔案編碼格式。 如果你只是想檢視其它編碼格式的檔案或者想解決用Vim檢視檔案亂碼的問題,那麼你可以在 ~/.vimrc 檔案中新增以下內容: set encoding=ut

Linux_檢視檔案編碼以及修改編碼

如果你需要在Linux中操作windows下的檔案,那麼你可能會經常遇到檔案編碼轉換的問題。Windows中預設的檔案格式是GBK(gb2312),而Linux一般都是UTF-8。下面介紹一下,在Linux中如何檢視檔案的編碼及如何進行對檔案進行編碼轉換。 ·檢視檔案編碼 在Linux中檢視檔案編碼可以通過

linux vi檢視檔案編碼以及修改編碼

假如你須要在Linux中操作windows下的檔案,那麼你可能會時常遇到檔案編碼轉換的疑問。Windows中預設的檔案格式是GBK(gb2312),而Linux通常都是UTF-8。下面推選一下,在Linux中如何檢視檔案的編碼及如何實行對檔案實行編碼轉換。   檢視檔案編碼

Linux下查看文件編碼修改編碼

tar enca strong lin help 添加 解決 讀取 列表 查看文件編碼在Linux中查看文件編碼可以通過以下幾種方式:1.在Vim中可以直接查看文件編碼:set fileencoding即可顯示文件編碼格式。如果你只是想查看其它編碼格式的文件或者想解決用Vi

ASCII編碼Unicode編碼

utf-8 div 可變 2個 新的 code 統一 英文 範圍 ASCII編碼和Unicode編碼 ASCII編碼和Unicode編碼的區別:ASCII編碼是1個字節,而Unicode編碼通常是2個字節。 字母A用ASCII編碼是十進制的65,二進制的010000

深入理解計算機系統(2.4)------整數的表示(無符號編碼補碼編碼

class 映射 們的 c語言 正數 裏的 小例子 負數 類型   上一篇博客我們主要介紹了布爾代數和C語言當中的幾個運算符。那麽這一篇博客我們主要介紹在計算機中整數是如何表示的,諸如我們在編碼過程中遇到的對數據類型進行強制轉換可能會得到意想不到的結果在這篇博客裏你會得到解

mysql 查看數據庫編碼修改編碼方法

com eat variables base 方式 定義 mysq 修改 set 數據庫的編碼很重要,如果沒正確定義編碼,會導致整個數據庫是亂碼的,如果你設置數據庫為utf8 ,導出為gb2312,肯定亂碼,反之則一樣,你定義什麽編碼方式,導出用什麽編碼方式。 1,查看數

Oracle資料庫忘記使用者名稱密碼怎麼辦

方法一:   首先進入sqlplus:進入的方式有兩種,一種是通過cmd命令臺輸入sqlplus,另外一種是直接在開始-》程式-》Oracle-》應用程式開發-》sqlplus。 搜尋 “Oracle 11g預設使用者名稱,密碼”,可以找到很多相關的預設使用者

php utf8編碼gbk編碼相互轉換

1.utf8轉換為gbk header("Content-type:text/html;charset=UTF-8"); echo $str= 'utf8轉gbk!'; echo '<br />'; echo iconv("UTF-8

Oracle資料庫 資料完整性DML語句

 資料完整性和DML語句 資料完整性 資料完整性(Data Integrity)是指資料的精確性(Accuracy) 和可靠性(Reliability)。它是應防止資料庫中存在不符合語義規定的資料和防止因錯誤資訊的輸入輸出造成無效操作或錯誤資訊而提出的。資料完整性指儲存在資料庫中的所有資料值均正確的狀態。如果