程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle數據庫案例整理-使用SQL語句插入中文後數據庫中顯示亂碼

Oracle數據庫案例整理-使用SQL語句插入中文後數據庫中顯示亂碼

編輯:Oracle教程

1.1 現象描述

導入如下SQL語句時,數據庫中顯示亂碼。
insert into CONFERENCE(CONFERENCEID,SUBCONFERENCEID,ACCESSNUMBER,ACCOUNTID,ALLOCATEDID,ALLOWVIDEOCONTROL,SCREENTYPE,SCREENSWITCHMODE,BOARDNUM,CANRECORD,CHARGEMODE,CONFERENCEMODE,CONFERENCESTATE,CONFERENCETYPE,CYCLETYPE,ENDTIME,ENTERPROMPT,FACTENDTIME,LANGUAGE,LEAVEPROMPT,LENGTH,LOCKSTATE,MEDIATYPES,MEMBERNOTIFY,MEMO,NEEDADDMEMOTOSMS,NEEDAUTOINVITE,NEEDAUTOKINESCOPE,NEEDAUTORECORD,NEEDINVITEPWD,NEEDPARTICIPATORLIMIT,ORGANIZATIONID,PERMITINVITE,PERMITKINESCOPE,PERMITRECORD,REALORGANIZATIONID,REASON,RECORDFILEPATH,RESERVESIZE,SCHEDULENOTIFY,SCHEDUSERMOBILE,SCHEDUSERNAME,CONFERENCESIZE,SPEAKSTATE,STARTTIME,SUBJECT,SUMMERTIME,TIMEZONE,UPDATENOTIFY,VOICERECORDSTATE,VOICETOPICPATH,VOICETOPICSTATE,EXT1,EXT2,EXT3) values('0000152972',2,'25001','1',16,0,'','','1270015060',0,'scheduler','COMMON','Schedule','schedule','cycle',1238251500000,'',1238251500000,'zh_cn','',840,'','video',1,'',0,0,0,0,0,0,'topOrganization',1,1,1,'topOrganization',0,'20090328/meet0000152972',3,1,'','',3,1,1238201100000,'周期視頻會議',0,56,1,'UnRecord','0000152972','UnRecord',null,null,null);

1.2 可能原因

插入的SQL語句中的字段包含中文,由於數據庫字符集與操作系統字符集設置不同,導致數據庫顯示亂碼。

1.3 處理步驟

oracle用戶登錄數據庫所在機器。 以sysdba用戶連接數據庫。

% sqlplus / as sysdba

檢查數據庫字符集參數“NLS_LANGUAGE”的值。

SQL> select value from nls_database_parameters where parameter='NLS_LANGUAGE';

顯示參數值為“AMERICAN”。

VALUE
--------------------------------------------------------------------------------
AMERICAN
檢查數據庫字符集參數“NLS_TERRITORY”的值。

SQL> select value from nls_database_parameters where parameter='NLS_TERRITORY';

顯示參數值為“AMERICA”。

VALUE
--------------------------------------------------------------------------------
AMERICA
檢查數據庫字符集參數“NLS_CHARACTERSET'”的值。

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

顯示參數值為“WE8MSWIN1252”。

VALUE
--------------------------------------------------------------------------------
WE8MSWIN1252
根據在數據庫查詢的字符集參數,修改數據庫所在機器操作系統的字符集“NLS_LANG”變量。

SQL> export NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252

“AMERICAN”、“AMERICA”、“WE8MSWIN1252”是3、4、5的查詢結果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved