3.12 National Language Support (NLS) ------------------------------- - Available character sets: CL8ISO8859P5 ISO for minis (HP, DEC, SUN ...) CL8MSWINDOW31 Microsoft Windows 3.1 8-bit Latin/Cyrillic (OLD. NOT PRESENTED IN 7.3 AND ABOVE!) CL8MSWIN1251 Microsoft Windows Code Page 1251 8-bit (New) RU8PC866 IBM-PC Code Page 866 8-bit (Alternate) CL8MACCYRILLIC Mac 8-bit Latin/Cyrillic CL8MACCYRILLICS Mac Server 8-bit Latin/Cyrillic CL8EBCDIC1025 EBCDIC IBM Code Page 1025 8-bit Cyrillic CL8BS2000 Siemens EBCDIC.EHC.LC 8-bit Cyrillic RU8PC855 IBM-PC Code Page 855 8-bit (unusable) RU8BESTA BESTA 8-bit RU8KOI8R Internet de-facto standard - How to set NLS support on client or server sides - Server side To ensure automatic charset translations russian charset should be installed on server side by either: 1. CREATE DATABASE .... CHARSET or 2. Check table SYS.PROPS$ and update it if necessary. (For Oracle7 only. Does NOT work in Oracle8!!!) update SYS.PROPS$ set VALUE$ = '' where Name = 'NLS_CHARACTERSET'; COMMIT; BE CAREFUL!!! If wrong is specified you will NOT BE ABLE TO STARTUP database!!! You can find correct chaset_names with: select Value from SYS.V$NLS_VALID_VALUES where Parameter = 'CHARACTERSET' order by value; Note: On UNIX platforms charset_name RU8PC866 is available only beginning with Oracle RDBMS 7.1.3 or later!!!. - Client side LANGUAGE - v6 tools (SQL*FORMS,... SQL*PLUS 3.0) NLS_LANG - v7 tools (ORACLE*FORMS,... SQL*PLUS 3.1) - UNIX & VMS NLS_LANG env. variable (logical). NLS_LANG=AMERICAN_AMERICA.RU8PC855;export NLS_LANG=RUSSIAN_CIS.RU8PC855;... - DOS. CONFIG.ORA V6 tools (SQL*FORMS, SQL*RW...): LANGUAGE=AMERICAN_AMERICA.RU8PC866 or (for Russian) LANGUAGE=russian_USSR.ru8pc866 NLS_LANG=russian_CIS.ru8pc866 For DOS always use two lines: LANGUAGE=american_america.ru8pc866 NLS_LANG=american_america.ru8pc866 SQL*PLUS 3.1,EXP/IMP & Loader 7.0.15 for DOS: NLS_LANG=russian_CIS.ru8pc866 - MS-WINDOWS C:\WINDOWS\ORACLE.INI NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251 - NetWare SYS:SYSTEM\CONFIG.ORA NLMs: EXP/IMP, SQL*LOADER, SQL*DBA NLS_LANG=RUSSIAN_CIS.RU8PC866 - UNIX NLS_LANG=RUSSIAN_CIS.CL8ISO8859P5;export for V6 tools (FORMS,MENU,RW) LANGUAGE=RUSSIAN_USSR.CL8ISO8859P5;export - Character set conversion Character conversion can be tested using SQL DUMP and CHR functions by specifying the numeric (binary) value of a character in a given encoding scheme. This method provides an important testing technique sins a terminal using a designated character encoding testing technique since a terminal using a designated character encoding scheme is not necessary. SELECT DUMP (CHR(x),'','') FROM DUAL; SELECT DUMP (CHR(246),'WE81SO8859P1','WE8PC850') FROM DUAL; This technique can also be test case conversion SELECT DUMP(UPPER(CHR(231))) FROM DUAL; and to directly insert and select character data independent of character set conversion. INSERT INTO () VALUES (CHR(231)||CHR(232)||CHR(233)); SELECT DUMP () FROM
; B4. Can character data be converted explicitly? Yes. Applications can use the CONVERT function to explicitly convert data from one encoding scheme to another. CONVERT (,,) were is the encoding scheme to convert data to and is the encoding scheme of the data to be converted. For example, SELECT CONVERT (ENAME,'WE8HPHP','WE8DEC') FROM EMP; generates a report from data entered as DEC 8-bit character set for output to a laserJet printer using HP Wespten European 8-bit character set.