SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
MythBusters Globalization Support
Avoid Data Corruption
Christian Gohmann
@CGohmannDE DOAG2018
About me…
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Christian Gohmann
Senior Consultant at Trivadis GmbH, Düsseldorf (Germany)
Instructor since 2014
– O-AI (Oracle Architecture and Internals)
– O-AI-DBA (Oracle Architecture and Internals for DBAs)
Tool Owner of TVD-Backup
Experiences with Oracle since 2006 (8i – 18c)
– Architecture, Installation & Configuration
– High Availability Solutions (RAC, Data Guard)
– Migration Projects
– Backup & Recovery (RMAN, Data Pump)
Blog: http://www.christian-gohmann.de
We help to generate added value from data
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
With over 650 specialists and IT experts in your region.
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
16 Trivadis branches and more than
650 employees
Experience from more than 1,900
projects per year at over 800
customers
250 Service Level Agreements
Over 4,000 training participants
Research and development budget:
CHF 5.0 million
Financially self-supporting and
sustainably profitable
Agenda
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
1. Fundamentals
2. Configuration
3. Conversion
4. Tools
5. Debugging
6. Migration
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Fundamentals
Globalization Support
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Store, process and retrieve data in native languages
– Allows the development of multilingual applications
Former known as National Language Support (NLS)
– Subset of the Globalization Support
Implemented with the Oracle NLS Runtime Library (NLSRTL)
– Functions for text and character processing and manipulations
Locale-specific data is stored in $ORACLE_HOME/nls/data
– Use ORA_NLS10 environment variable to choose a different location
– Loaded as independent set at runtime
Language Support
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Refers to the additional language-dependent functionalities
– Display dates using translated month names
– Sort text according to cultural conventions
– Translated error messages and user interfaces
Only available for a subset of the languages
Parameter: NLS_LANGUAGE
“Language Support means the ability to store text of a specific language”
SQL> ALTER SESSION SET nls_language = 'FRENCH';
BUSTED
Territory Support
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Has nothing to do with the ability to store characters in the database
Support of cultural conventions, specific to geographical locations
– Default local time format
– Date format
– Numeric and monetary conventions
Parameter: NLS_TERRITORY
“Territory support allows the database to store characters of different languages”
SQL> ALTER SESSION SET nls_territory = 'FRANCE';
BUSTED
Character Set Support 1/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
"A Character Set maps a number to a characters visual representation."
Two character sets are defined at database creation
National Character Set to store Unicode
– Limited to NCHAR, NVARCHAR2 and NCLOB data types
Oracle naming convention (except UTF8 and UTFE)
– <Region><Bit length><Standard Character Set Name>[S|C]
– Optional: S → Server, C → Client
– Example: WE8ISO8859P15
SQL> CREATE DATABASE TEST (
…
CHARACTER SET WE8MSWIN2152
NATIONAL CHARACTER SET AL16UTF16
);
Character Set Support 2/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Windows character sets like WE8MSWIN1252 can be used on Unix
– EBCDIC character sets cannot be used on ASCII platforms and vice-versa
"Windows character sets are limited to the Windows platform"
BUSTED
Calendar Systems
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Support of eight different calendar systems
Switch to a different calendar
NLS Calendar Utility can be used to register calendar modifications (*.nlt files)
Name Name
Gregorian Japanese Imperial
ROC Official (Republic of China) Thai Buddha
Persian English Hijrah
Arabic Hijrah Ethiopian
SQL> ALTER SESSION SET nls_calendar = 'Persian';
$> lxegen
Unicode Support
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Support of the Unicode standard since Oracle 7
Two ways to store Unicode characters in the database
– Create a database with a Unicode character set (e.g. UTF8)
– Support multilingual data in specific columns (NCHAR, NVARCHAR, NCLOB)
Oracle recommends the usage of AL32UTF8 (default since Oracle 12c Release 2)
Database Migration Assistant for Unicode (DMU)
Oracle Version Unicode Version
10g 4.0
11g 5.0
12c 6.2 / 7.0
18c 9.0
Enhancements in 12c and 18c
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Oracle 12c
Support for Unicode 6.2 / 7.0 (12c Release 2)
Support for 12 new languages and 32 new territories
Support for the Unicode Collation Algorithm (UCA)
Support for Pluggable Databases with different Character Sets
Column Level Collation (Case-insensitive Database)
Desupport of CSSCAN and CSALTER for migration to Unicode
– Instead use Database Migration Assistant for Unicode (DMU)
Oracle 18c
Support for Unicode 9.0
Support for 3 new languages and 31 new territories
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Configuration
General
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
A new session initializes the NLS environment from the NLS instance parameters
– If specific client-side NLS settings are given, an ALTER SESSION is executed
Check V$NLS_VALID_VALUES for valid values of NLS settings
Direct connection from the server acts like a client connection
Set NLS_% parameter on instance level requires restart of instance
SQL> ALTER SYSTEM SET nls_date_format = 'YYYY-MM-DD HH24:MI' SCOPE=SPFILE;
Client 1/3
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
NLS_LANG only represents the character set that the client use
– Example: German Windows client → GERMAN_GERMANY.WE8MSWIN1252
– Example: Unix client with Unicode locale → AMERICAN_AMERICA.UTF8
It can be the same, but it is not a must
It is required for proper conversion
If client and server character sets match, then no validation is enforced
“NLS_LANG must match the character set of the database server”
BUSTED
Client 2/3
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
If not set it defaults to the hardcoded value US7ASCII
Registry key: HKLMSOFTWAREORACLEKEY_<Oracle Home Name>
“If NLS_LANG is not set it uses the NLS_LANG of the database server”
SQL> ! echo $NLS_LANG
SQL> SELECT client_charset, network_service_banner
FROM v$session_connect_info
WHERE sid = SYS_CONTEXT('USERENV', 'SID');
CLIENT_CHARSET NETWORK_SERVICE_BANNER
-------------- ------------------------------------------------------------------------------
US7ASCII Oracle Bequeath NT Protocol Adapter for Linux: Version 12.1.0.1.0 - Production
US7ASCII Authentication service for Linux: Version 12.1.0.1.0 - Production
US7ASCII Encryption service for Linux: Version 12.1.0.1.0 - Production
US7ASCII Crypto-checksumming service for Linux: Version 12.1.0.1.0 - Production
BUSTED
Client 3/3
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Setting NLS_LANG changes nothing on the client
The character set can only be changed with operating system tools
“Setting NLS_LANG changes the character set of the client”
# Change Locale on Linux
$> export LANG=de_DE.CP1252
$> locale
LANG=de_DE.CP1252
LC_CTYPE="de_DE.CP1252"
…
LC_IDENTIFICATION="de_DE.CP1252"
BUSTED
Miscellaneous
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Different tools or input files require specific NLS_LANG settings
Tool NLS_LANG Comment
SQL Loader /
SQL Developer
Character set of the text/flat file
UTL_FILE Does not use it
Runs in the database. Assume encoding of the input
file is in the character set of the database. Otherwise
use UTL_RAW.CONVERT
Export Same as the database character set No character conversion
Import Character set of the source database Check with imp .. show=yes
Data Pump
Not affected by the NLS_LANG setting.
Only used for the parameter file.
SQLcl Does not evaluate NLS_LANG.
Because SQLcl is a Java program, it evaluates
environment variable LANG (except Windows)
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Conversion
Character Conversion
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Normally conversion is done at client side (OCI driver)
– 8.0.4 onwards
If character set is not known at client side, server side will do conversion
– 8.1.6 onwards
If server and client side character sets are the same, no validation will be
performed
– Increased performance
– Chance to write data garbage
Character Lifecycle
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Database
WEISO8859P15
Client / Tool
WE8MSWIN1252
Codepage 1252
Insert
"€"
Translate
"€" → 128 (20AC)
Convert codepage
128 → 164
Send codepage
164
User
Special Characters
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Some character sets offers mappings from unknown characters to known
characters
– E.g. é → e, ä → a
Character Description
□ The used font has no graphical representation for the codepage
¿ Replacement character that is used for unknown characters in the character set
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Tools
SQL*Plus 1/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
SQL*Plus in a DOS box does not use the regular Windows codepage
– Instead it uses the OEM environment (e.g. codepage 850)
– Character set part of NLS_LANG must be set to WE8PC850
– Alternatively change codepage using chcp and set different font
“The codepage of running SQL*Plus in a DOS box differs from the regular operating system
codepage"
$> chcp
Active Codepage: 850
$> chcp 1252
CONFIRMED
SQL*Plus 2/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Until Oracle 10g an ANSI version of SQL*Plus (sqlplusw.exe) exists
– Uses the configured Windows codepage (e.g. 1252)
– Officially replaced by the SQL Developer
On Windows only: SQL*Plus is not UTF8/Unicode aware
SQL Developer 1/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
SQL Developer needs no client side NLS configuration
– Unicode client
Download from Oracle Technology Network (OTN)
– http://www.oracle.com/technetwork/developer-tools/sql-developer
Change font if □ characters appear in the output
– Reason: The used font cannot display the character
– Tools > Preferences > Code-Editor > Fonts
SQL Developer 2/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Change specific NLS settings of the SQL Developer session
– Tools > Preferences > Database > NLS
– Changes will be applied immediately
Telnet/SSH Client
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Responsible for conversion of the Unix locale to the client's environment
– Translation settings must match the encoding of the Unix Shell
Example: Connection to an en_EN.ISO8859-15 Unix Shell with PuTTY
Locale Builder 1/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
View, modify or create Language, Territory, Character Set or Linguistic Sort
definitions
Available since Oracle 9i
– Windows: %ORACLE_HOME%nlslbuilderlbuilder.exe
– Unix: $ORACLE_HOME/nls/lbuilder/lbuilder
Open NLS locale data definitions using file or object name
Locale Builder 2/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Debugging
General 1/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Check data with a Unicode client like SQL Developer
Check NLS settings on different levels
Client character set is visible in the V$SESSION_CONNECT_INFO view
– Available since 11g Release 1
SQL> SELECT * FROM nls_database_parameters;
SQL> SELECT * FROM nls_instance_parameters;
SQL> SELECT * FROM nls_session_parameters; -- Current session
SQL> SELECT client_charset, network_service_banner
FROM v$session_connect_info
WHERE sid = SYS_CONTEXT('USERENV', 'SID');
General 2/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Get NLS_LANG value set in Registry only
SQL> host echo %NLS_LANG%
%NLS_LANG%
SQL> @.[%NLS_LANG%].
SP2-0310: Unable to open file ".[GERMAN_GERMANY.WE8MSWIN1252]..sql"
Character Set Health Check
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Use CSSCAN utility to search for incompatible characters (< 12c)
– Requires a schema called CSMIG to store internal data
Run CSSCAN as SYSDBA
– Set FROMCHAR and TOCHAR to the same value
Check cs_healthceck.txt for "Convertible" or "Lossy" entries
– If no entries exist, the current data is fine
SQL> @?/rdbms/admin/csminst.sql
$> csscan FULL=Y FROMCHAR=WE8ISO8859P1 TOCHAR=WE8ISO8859P1
ARRAY=1024000 LOG=cs_healthcheck CAPTURE=Y PROCESS=4
DUMP Function
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Returns datatype code, length (bytes) and internal representation
Supports CHAR, VARCHAR2, NCHAR, NVARCHAR2, DATE, NUMBER
– Cannot be used on CLOB or NCLOB columns
Useful to check if a specific character is supported
– Requires the usage of an Unicode client like SQL Developer
– If an insert in a table succeeded the Character Set supports the character
SQL> SELECT DUMP(col1, 10) FROM tab1;
SQL> SELECT DUMP('Text with € sign', 10, 1, 10) FROM dual;
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Migration
Superset vs. Subset
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Character set can be a Superset or a Subset of the new character set
Type Description
Superset All characters from character set A are included in character set B.
Binary Superset
Same as Superset, but the binary representations of the character are the
same in character set A and B
Subset
Only a subset of the characters in character set A are included in character
set B.
Binary Subset
Same as Subset, but the binary representations of the character are the
same in character set A and B
Database Migration Assistant for Unicode (DMU) 1/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Migrates databases from legacy character sets to Unicode
– A GUI guides through all steps of the migration process
Validation mode for existing Unicode databases
– Searches for not correctly encoded characters
Version 2.2 was released in November 2017
– Support for JDK 8
– New command-line scanner (DMU-CLS) for scanning databases and generating reports
Since version 2.1.1 only database versions 11.2.0.4 and higher are supported
– For older database versions, you have to use version 2.1.0 (Patch 21138450)
Only supported tool for character set migration in 12c and higher
– Replaces CSSCAN and CSALTER
– Can only migrate databases to Unicode
Database Migration Assistant for Unicode (DMU) 2/2
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Download from Oracle Technology Network or My Oracle Support
– OTN version: OTN Developer License (Evaluation)
http://www.oracle.com/technetwork/database/database-
technologies/globalization/dmu
– MOS version: Program Update under the Database Support Contract (Migration) -
Patch #27084436
Requires the installation of the Java Development Kit 8
Requirements
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Oracle Database must be 10.2.0.4 (11.2.0.4) or higher
– Installed XML Database feature
– DBMS_DUMA_INTERNAL package
ASCII-based character set
Oracle Database Vault must be disabled
Data Dictionary must contain ASCII characters only
No Flashback archives can exist
Data that requires conversions …
– … cannot reside in read-only or offline tablespaces
– … can be present in tables in the recycle bin
– … can be present in reference partitioning key column
SQL> @?/rdbms/admin/prvtdumi.plb
Repository Configuration Wizard
MythBusters Globalization Support - Avoid Data Corruption15.09.201915.09.2019 MythBusters Globalization Support - Avoid Data Corruption
Migration
MythBusters Globalization Support - Avoid Data Corruption15.09.201915.09.2019 MythBusters Globalization Support - Avoid Data Corruption
MythBusters Globalization Support - Avoid Data Corruption15.09.2019
Database Globalization Support Guide 12c Release 2
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/nlspg/index.html
Database Globalization Support Guide 18c
https://docs.oracle.com/en/database/oracle/oracle-database/18/nlspg/index.html
My Oracle Support Notes - https://support.oracle.com
264157.1 The Correct NLS_LANG Setting in Unix Environments
179133.1 The Correct NLS_LANG in a Microsoft Windows Environment
179133.1 NLS_LANG Explained (How does Client-Server Character Conversion Work?)
241047.1 The Priority of NLS Parameters Explained (Where To Define NLS Parameters)
Christian Gohmann
Senior Consultant
Tel. +49-211-58 6664 702
christian.gohmann@trivadis.com
15.09.2019 MythBusters Globalization Support - Avoid Data Corruption
Trivadis @ DOAG 2018
#opencompany
Booth: 3rd Floor – next to the escalator
We share our Know how!
Just come across, Live-Presentations
and documents archive
T-Shirts, Contest and much more
We look forward to your visit
15.09.2019 MythBusters Globalization Support - Avoid Data Corruption

Más contenido relacionado

La actualidad más candente

SOUG Day Oracle 21c New Security Features
SOUG Day Oracle 21c New Security FeaturesSOUG Day Oracle 21c New Security Features
SOUG Day Oracle 21c New Security FeaturesStefan Oehrli
 
Oracle Database 12.1.0.2: New Features
Oracle Database 12.1.0.2: New FeaturesOracle Database 12.1.0.2: New Features
Oracle Database 12.1.0.2: New FeaturesDeiby Gómez
 
TechEvent 2019: Oracle Databases as Managed Service at AWS, Yes it works!; Al...
TechEvent 2019: Oracle Databases as Managed Service at AWS, Yes it works!; Al...TechEvent 2019: Oracle Databases as Managed Service at AWS, Yes it works!; Al...
TechEvent 2019: Oracle Databases as Managed Service at AWS, Yes it works!; Al...Trivadis
 
Oracle Database 12c New Features for Developers and DBAs - OTN TOUR LA 2015
Oracle Database 12c  New Features for Developers and DBAs - OTN TOUR LA 2015Oracle Database 12c  New Features for Developers and DBAs - OTN TOUR LA 2015
Oracle Database 12c New Features for Developers and DBAs - OTN TOUR LA 2015Alex Zaballa
 
Oracle Active Data Guard 12c New Features
Oracle Active Data Guard 12c New FeaturesOracle Active Data Guard 12c New Features
Oracle Active Data Guard 12c New FeaturesEmre Baransel
 
RMAN best practices for RAC
RMAN best practices for RACRMAN best practices for RAC
RMAN best practices for RACSyed Hussain
 
SOUG PDB Security, Isolation and DB Nest 20c
SOUG PDB Security, Isolation and DB Nest 20cSOUG PDB Security, Isolation and DB Nest 20c
SOUG PDB Security, Isolation and DB Nest 20cStefan Oehrli
 
Oracle Unified Directory. Lessons learnt. Is it ready for a move from OID? (O...
Oracle Unified Directory. Lessons learnt. Is it ready for a move from OID? (O...Oracle Unified Directory. Lessons learnt. Is it ready for a move from OID? (O...
Oracle Unified Directory. Lessons learnt. Is it ready for a move from OID? (O...Andrejs Prokopjevs
 
UKOUG TechFest PDB Isolation and Security
UKOUG TechFest PDB Isolation and SecurityUKOUG TechFest PDB Isolation and Security
UKOUG TechFest PDB Isolation and SecurityStefan Oehrli
 
Using VirtualBox - Learn Oracle Database 12c and EBS R12
Using VirtualBox - Learn Oracle Database 12c and EBS R12Using VirtualBox - Learn Oracle Database 12c and EBS R12
Using VirtualBox - Learn Oracle Database 12c and EBS R12Biju Thomas
 
Oracle 21c: New Features and Enhancements of Data Pump & TTS
Oracle 21c: New Features and Enhancements of Data Pump & TTSOracle 21c: New Features and Enhancements of Data Pump & TTS
Oracle 21c: New Features and Enhancements of Data Pump & TTSChristian Gohmann
 
Create non-cdb (traditional) oracle database 12c on windows
Create non-cdb (traditional) oracle database 12c on windowsCreate non-cdb (traditional) oracle database 12c on windows
Create non-cdb (traditional) oracle database 12c on windowsBiju Thomas
 
Oracle 12c Multi Tenant
Oracle 12c Multi TenantOracle 12c Multi Tenant
Oracle 12c Multi TenantRed Stack Tech
 
Crating a Robust Performance Strategy
Crating a Robust Performance StrategyCrating a Robust Performance Strategy
Crating a Robust Performance StrategyGuatemala User Group
 
Database 12c is ready for you... Are you ready for 12c?
Database 12c is ready for you... Are you ready for 12c?Database 12c is ready for you... Are you ready for 12c?
Database 12c is ready for you... Are you ready for 12c?Performance Tuning Corporation
 
Oracle 12c New Features_RAC_slides
Oracle 12c New Features_RAC_slidesOracle 12c New Features_RAC_slides
Oracle 12c New Features_RAC_slidesSaiful
 
MySQL 5.7 in a Nutshell
MySQL 5.7 in a NutshellMySQL 5.7 in a Nutshell
MySQL 5.7 in a NutshellEmily Ikuta
 
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...Alex Zaballa
 

La actualidad más candente (20)

SOUG Day Oracle 21c New Security Features
SOUG Day Oracle 21c New Security FeaturesSOUG Day Oracle 21c New Security Features
SOUG Day Oracle 21c New Security Features
 
Oracle Database 12.1.0.2: New Features
Oracle Database 12.1.0.2: New FeaturesOracle Database 12.1.0.2: New Features
Oracle Database 12.1.0.2: New Features
 
TechEvent 2019: Oracle Databases as Managed Service at AWS, Yes it works!; Al...
TechEvent 2019: Oracle Databases as Managed Service at AWS, Yes it works!; Al...TechEvent 2019: Oracle Databases as Managed Service at AWS, Yes it works!; Al...
TechEvent 2019: Oracle Databases as Managed Service at AWS, Yes it works!; Al...
 
Oracle Database 12c New Features for Developers and DBAs - OTN TOUR LA 2015
Oracle Database 12c  New Features for Developers and DBAs - OTN TOUR LA 2015Oracle Database 12c  New Features for Developers and DBAs - OTN TOUR LA 2015
Oracle Database 12c New Features for Developers and DBAs - OTN TOUR LA 2015
 
Oracle Active Data Guard 12c New Features
Oracle Active Data Guard 12c New FeaturesOracle Active Data Guard 12c New Features
Oracle Active Data Guard 12c New Features
 
RMAN best practices for RAC
RMAN best practices for RACRMAN best practices for RAC
RMAN best practices for RAC
 
SOUG PDB Security, Isolation and DB Nest 20c
SOUG PDB Security, Isolation and DB Nest 20cSOUG PDB Security, Isolation and DB Nest 20c
SOUG PDB Security, Isolation and DB Nest 20c
 
Oracle Unified Directory. Lessons learnt. Is it ready for a move from OID? (O...
Oracle Unified Directory. Lessons learnt. Is it ready for a move from OID? (O...Oracle Unified Directory. Lessons learnt. Is it ready for a move from OID? (O...
Oracle Unified Directory. Lessons learnt. Is it ready for a move from OID? (O...
 
What's next after Upgrade to 12c
What's next after Upgrade to 12cWhat's next after Upgrade to 12c
What's next after Upgrade to 12c
 
UKOUG TechFest PDB Isolation and Security
UKOUG TechFest PDB Isolation and SecurityUKOUG TechFest PDB Isolation and Security
UKOUG TechFest PDB Isolation and Security
 
Using VirtualBox - Learn Oracle Database 12c and EBS R12
Using VirtualBox - Learn Oracle Database 12c and EBS R12Using VirtualBox - Learn Oracle Database 12c and EBS R12
Using VirtualBox - Learn Oracle Database 12c and EBS R12
 
Oracle 21c: New Features and Enhancements of Data Pump & TTS
Oracle 21c: New Features and Enhancements of Data Pump & TTSOracle 21c: New Features and Enhancements of Data Pump & TTS
Oracle 21c: New Features and Enhancements of Data Pump & TTS
 
Create non-cdb (traditional) oracle database 12c on windows
Create non-cdb (traditional) oracle database 12c on windowsCreate non-cdb (traditional) oracle database 12c on windows
Create non-cdb (traditional) oracle database 12c on windows
 
Oracle 12c Multi Tenant
Oracle 12c Multi TenantOracle 12c Multi Tenant
Oracle 12c Multi Tenant
 
Crating a Robust Performance Strategy
Crating a Robust Performance StrategyCrating a Robust Performance Strategy
Crating a Robust Performance Strategy
 
Database 12c is ready for you... Are you ready for 12c?
Database 12c is ready for you... Are you ready for 12c?Database 12c is ready for you... Are you ready for 12c?
Database 12c is ready for you... Are you ready for 12c?
 
Oracle 12c New Features_RAC_slides
Oracle 12c New Features_RAC_slidesOracle 12c New Features_RAC_slides
Oracle 12c New Features_RAC_slides
 
MySQL 5.7 in a Nutshell
MySQL 5.7 in a NutshellMySQL 5.7 in a Nutshell
MySQL 5.7 in a Nutshell
 
Oracle 12c - Multitenant Feature
Oracle 12c - Multitenant FeatureOracle 12c - Multitenant Feature
Oracle 12c - Multitenant Feature
 
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
OTN TOUR 2016 - Oracle Database 12c - The Best Oracle Database 12c New Featur...
 

Similar a MythBusters Globalization Support - Avoid Data Corruption

Sql interview question part 10
Sql interview question part 10Sql interview question part 10
Sql interview question part 10kaashiv1
 
Oracle Globalization Support, NLS_LENGTH_SEMANTICS, Unicode
Oracle Globalization Support, NLS_LENGTH_SEMANTICS, UnicodeOracle Globalization Support, NLS_LENGTH_SEMANTICS, Unicode
Oracle Globalization Support, NLS_LENGTH_SEMANTICS, UnicodeMarkus Flechtner
 
Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Bobby Curtis
 
Data relay introduction to big data clusters
Data relay introduction to big data clustersData relay introduction to big data clusters
Data relay introduction to big data clustersChris Adkin
 
Compare Clustering Methods for MS SQL Server
Compare Clustering Methods for MS SQL ServerCompare Clustering Methods for MS SQL Server
Compare Clustering Methods for MS SQL ServerAlexDepo
 
Create your oracle_apps_r12_lab_with_less_than_us1000
Create your oracle_apps_r12_lab_with_less_than_us1000Create your oracle_apps_r12_lab_with_less_than_us1000
Create your oracle_apps_r12_lab_with_less_than_us1000Ajith Narayanan
 
Lessly_Resume_6y5m
Lessly_Resume_6y5mLessly_Resume_6y5m
Lessly_Resume_6y5mLessly Raja
 
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019Dave Stokes
 
PHP, The X DevAPI, and the MySQL Document Store Presented January 23rd, 20...
PHP,  The X DevAPI,  and the  MySQL Document Store Presented January 23rd, 20...PHP,  The X DevAPI,  and the  MySQL Document Store Presented January 23rd, 20...
PHP, The X DevAPI, and the MySQL Document Store Presented January 23rd, 20...Dave Stokes
 
Resume-SystemsDBA-Brian Wigton
Resume-SystemsDBA-Brian WigtonResume-SystemsDBA-Brian Wigton
Resume-SystemsDBA-Brian WigtonBrian Wigton
 
SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2Gianluca Hotz
 
Perfsystems- Consulting Services
Perfsystems- Consulting ServicesPerfsystems- Consulting Services
Perfsystems- Consulting ServicesPerfsys Tems
 
Anatomy Of A Driver Presentation 09 15 2008
Anatomy Of A Driver Presentation   09 15 2008Anatomy Of A Driver Presentation   09 15 2008
Anatomy Of A Driver Presentation 09 15 2008ctindale
 
Best Practices for Managing Kubernetes and Stateful Services: Mesosphere & Sy...
Best Practices for Managing Kubernetes and Stateful Services: Mesosphere & Sy...Best Practices for Managing Kubernetes and Stateful Services: Mesosphere & Sy...
Best Practices for Managing Kubernetes and Stateful Services: Mesosphere & Sy...Mesosphere Inc.
 
CV_Gagan_Kumar - latest
CV_Gagan_Kumar - latestCV_Gagan_Kumar - latest
CV_Gagan_Kumar - latestGagan Kumar
 
Maneuver Your Enterprise Data With WSO2 Data Service Server
Maneuver Your Enterprise Data With WSO2 Data Service ServerManeuver Your Enterprise Data With WSO2 Data Service Server
Maneuver Your Enterprise Data With WSO2 Data Service ServerPrabath Abeysekara
 
Modern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaModern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaLucas Jellema
 
Confluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with ReplyConfluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with Replyconfluent
 

Similar a MythBusters Globalization Support - Avoid Data Corruption (20)

Sql interview question part 10
Sql interview question part 10Sql interview question part 10
Sql interview question part 10
 
Ebook10
Ebook10Ebook10
Ebook10
 
Oracle Globalization Support, NLS_LENGTH_SEMANTICS, Unicode
Oracle Globalization Support, NLS_LENGTH_SEMANTICS, UnicodeOracle Globalization Support, NLS_LENGTH_SEMANTICS, Unicode
Oracle Globalization Support, NLS_LENGTH_SEMANTICS, Unicode
 
Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)
 
Data relay introduction to big data clusters
Data relay introduction to big data clustersData relay introduction to big data clusters
Data relay introduction to big data clusters
 
Compare Clustering Methods for MS SQL Server
Compare Clustering Methods for MS SQL ServerCompare Clustering Methods for MS SQL Server
Compare Clustering Methods for MS SQL Server
 
Create your oracle_apps_r12_lab_with_less_than_us1000
Create your oracle_apps_r12_lab_with_less_than_us1000Create your oracle_apps_r12_lab_with_less_than_us1000
Create your oracle_apps_r12_lab_with_less_than_us1000
 
Vineet Kurrewar
Vineet KurrewarVineet Kurrewar
Vineet Kurrewar
 
Lessly_Resume_6y5m
Lessly_Resume_6y5mLessly_Resume_6y5m
Lessly_Resume_6y5m
 
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
 
PHP, The X DevAPI, and the MySQL Document Store Presented January 23rd, 20...
PHP,  The X DevAPI,  and the  MySQL Document Store Presented January 23rd, 20...PHP,  The X DevAPI,  and the  MySQL Document Store Presented January 23rd, 20...
PHP, The X DevAPI, and the MySQL Document Store Presented January 23rd, 20...
 
Resume-SystemsDBA-Brian Wigton
Resume-SystemsDBA-Brian WigtonResume-SystemsDBA-Brian Wigton
Resume-SystemsDBA-Brian Wigton
 
SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2SQL Server 2019 ctp2.2
SQL Server 2019 ctp2.2
 
Perfsystems- Consulting Services
Perfsystems- Consulting ServicesPerfsystems- Consulting Services
Perfsystems- Consulting Services
 
Anatomy Of A Driver Presentation 09 15 2008
Anatomy Of A Driver Presentation   09 15 2008Anatomy Of A Driver Presentation   09 15 2008
Anatomy Of A Driver Presentation 09 15 2008
 
Best Practices for Managing Kubernetes and Stateful Services: Mesosphere & Sy...
Best Practices for Managing Kubernetes and Stateful Services: Mesosphere & Sy...Best Practices for Managing Kubernetes and Stateful Services: Mesosphere & Sy...
Best Practices for Managing Kubernetes and Stateful Services: Mesosphere & Sy...
 
CV_Gagan_Kumar - latest
CV_Gagan_Kumar - latestCV_Gagan_Kumar - latest
CV_Gagan_Kumar - latest
 
Maneuver Your Enterprise Data With WSO2 Data Service Server
Maneuver Your Enterprise Data With WSO2 Data Service ServerManeuver Your Enterprise Data With WSO2 Data Service Server
Maneuver Your Enterprise Data With WSO2 Data Service Server
 
Modern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas JellemaModern Database Development Oow2008 Lucas Jellema
Modern Database Development Oow2008 Lucas Jellema
 
Confluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with ReplyConfluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with Reply
 

Último

cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 

Último (20)

cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 

MythBusters Globalization Support - Avoid Data Corruption

  • 1. MythBusters Globalization Support Avoid Data Corruption Christian Gohmann @CGohmannDE DOAG2018
  • 2. About me… MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Christian Gohmann Senior Consultant at Trivadis GmbH, Düsseldorf (Germany) Instructor since 2014 – O-AI (Oracle Architecture and Internals) – O-AI-DBA (Oracle Architecture and Internals for DBAs) Tool Owner of TVD-Backup Experiences with Oracle since 2006 (8i – 18c) – Architecture, Installation & Configuration – High Availability Solutions (RAC, Data Guard) – Migration Projects – Backup & Recovery (RMAN, Data Pump) Blog: http://www.christian-gohmann.de
  • 3. We help to generate added value from data MythBusters Globalization Support - Avoid Data Corruption15.09.2019
  • 4. With over 650 specialists and IT experts in your region. MythBusters Globalization Support - Avoid Data Corruption15.09.2019 16 Trivadis branches and more than 650 employees Experience from more than 1,900 projects per year at over 800 customers 250 Service Level Agreements Over 4,000 training participants Research and development budget: CHF 5.0 million Financially self-supporting and sustainably profitable
  • 5. Agenda MythBusters Globalization Support - Avoid Data Corruption15.09.2019 1. Fundamentals 2. Configuration 3. Conversion 4. Tools 5. Debugging 6. Migration
  • 6. MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Fundamentals
  • 7. Globalization Support MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Store, process and retrieve data in native languages – Allows the development of multilingual applications Former known as National Language Support (NLS) – Subset of the Globalization Support Implemented with the Oracle NLS Runtime Library (NLSRTL) – Functions for text and character processing and manipulations Locale-specific data is stored in $ORACLE_HOME/nls/data – Use ORA_NLS10 environment variable to choose a different location – Loaded as independent set at runtime
  • 8. Language Support MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Refers to the additional language-dependent functionalities – Display dates using translated month names – Sort text according to cultural conventions – Translated error messages and user interfaces Only available for a subset of the languages Parameter: NLS_LANGUAGE “Language Support means the ability to store text of a specific language” SQL> ALTER SESSION SET nls_language = 'FRENCH'; BUSTED
  • 9. Territory Support MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Has nothing to do with the ability to store characters in the database Support of cultural conventions, specific to geographical locations – Default local time format – Date format – Numeric and monetary conventions Parameter: NLS_TERRITORY “Territory support allows the database to store characters of different languages” SQL> ALTER SESSION SET nls_territory = 'FRANCE'; BUSTED
  • 10. Character Set Support 1/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 "A Character Set maps a number to a characters visual representation." Two character sets are defined at database creation National Character Set to store Unicode – Limited to NCHAR, NVARCHAR2 and NCLOB data types Oracle naming convention (except UTF8 and UTFE) – <Region><Bit length><Standard Character Set Name>[S|C] – Optional: S → Server, C → Client – Example: WE8ISO8859P15 SQL> CREATE DATABASE TEST ( … CHARACTER SET WE8MSWIN2152 NATIONAL CHARACTER SET AL16UTF16 );
  • 11. Character Set Support 2/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Windows character sets like WE8MSWIN1252 can be used on Unix – EBCDIC character sets cannot be used on ASCII platforms and vice-versa "Windows character sets are limited to the Windows platform" BUSTED
  • 12. Calendar Systems MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Support of eight different calendar systems Switch to a different calendar NLS Calendar Utility can be used to register calendar modifications (*.nlt files) Name Name Gregorian Japanese Imperial ROC Official (Republic of China) Thai Buddha Persian English Hijrah Arabic Hijrah Ethiopian SQL> ALTER SESSION SET nls_calendar = 'Persian'; $> lxegen
  • 13. Unicode Support MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Support of the Unicode standard since Oracle 7 Two ways to store Unicode characters in the database – Create a database with a Unicode character set (e.g. UTF8) – Support multilingual data in specific columns (NCHAR, NVARCHAR, NCLOB) Oracle recommends the usage of AL32UTF8 (default since Oracle 12c Release 2) Database Migration Assistant for Unicode (DMU) Oracle Version Unicode Version 10g 4.0 11g 5.0 12c 6.2 / 7.0 18c 9.0
  • 14. Enhancements in 12c and 18c MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Oracle 12c Support for Unicode 6.2 / 7.0 (12c Release 2) Support for 12 new languages and 32 new territories Support for the Unicode Collation Algorithm (UCA) Support for Pluggable Databases with different Character Sets Column Level Collation (Case-insensitive Database) Desupport of CSSCAN and CSALTER for migration to Unicode – Instead use Database Migration Assistant for Unicode (DMU) Oracle 18c Support for Unicode 9.0 Support for 3 new languages and 31 new territories
  • 15. MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Configuration
  • 16. General MythBusters Globalization Support - Avoid Data Corruption15.09.2019 A new session initializes the NLS environment from the NLS instance parameters – If specific client-side NLS settings are given, an ALTER SESSION is executed Check V$NLS_VALID_VALUES for valid values of NLS settings Direct connection from the server acts like a client connection Set NLS_% parameter on instance level requires restart of instance SQL> ALTER SYSTEM SET nls_date_format = 'YYYY-MM-DD HH24:MI' SCOPE=SPFILE;
  • 17. Client 1/3 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 NLS_LANG only represents the character set that the client use – Example: German Windows client → GERMAN_GERMANY.WE8MSWIN1252 – Example: Unix client with Unicode locale → AMERICAN_AMERICA.UTF8 It can be the same, but it is not a must It is required for proper conversion If client and server character sets match, then no validation is enforced “NLS_LANG must match the character set of the database server” BUSTED
  • 18. Client 2/3 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 If not set it defaults to the hardcoded value US7ASCII Registry key: HKLMSOFTWAREORACLEKEY_<Oracle Home Name> “If NLS_LANG is not set it uses the NLS_LANG of the database server” SQL> ! echo $NLS_LANG SQL> SELECT client_charset, network_service_banner FROM v$session_connect_info WHERE sid = SYS_CONTEXT('USERENV', 'SID'); CLIENT_CHARSET NETWORK_SERVICE_BANNER -------------- ------------------------------------------------------------------------------ US7ASCII Oracle Bequeath NT Protocol Adapter for Linux: Version 12.1.0.1.0 - Production US7ASCII Authentication service for Linux: Version 12.1.0.1.0 - Production US7ASCII Encryption service for Linux: Version 12.1.0.1.0 - Production US7ASCII Crypto-checksumming service for Linux: Version 12.1.0.1.0 - Production BUSTED
  • 19. Client 3/3 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Setting NLS_LANG changes nothing on the client The character set can only be changed with operating system tools “Setting NLS_LANG changes the character set of the client” # Change Locale on Linux $> export LANG=de_DE.CP1252 $> locale LANG=de_DE.CP1252 LC_CTYPE="de_DE.CP1252" … LC_IDENTIFICATION="de_DE.CP1252" BUSTED
  • 20. Miscellaneous MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Different tools or input files require specific NLS_LANG settings Tool NLS_LANG Comment SQL Loader / SQL Developer Character set of the text/flat file UTL_FILE Does not use it Runs in the database. Assume encoding of the input file is in the character set of the database. Otherwise use UTL_RAW.CONVERT Export Same as the database character set No character conversion Import Character set of the source database Check with imp .. show=yes Data Pump Not affected by the NLS_LANG setting. Only used for the parameter file. SQLcl Does not evaluate NLS_LANG. Because SQLcl is a Java program, it evaluates environment variable LANG (except Windows)
  • 21. MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Conversion
  • 22. Character Conversion MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Normally conversion is done at client side (OCI driver) – 8.0.4 onwards If character set is not known at client side, server side will do conversion – 8.1.6 onwards If server and client side character sets are the same, no validation will be performed – Increased performance – Chance to write data garbage
  • 23. Character Lifecycle MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Database WEISO8859P15 Client / Tool WE8MSWIN1252 Codepage 1252 Insert "€" Translate "€" → 128 (20AC) Convert codepage 128 → 164 Send codepage 164 User
  • 24. Special Characters MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Some character sets offers mappings from unknown characters to known characters – E.g. é → e, ä → a Character Description □ The used font has no graphical representation for the codepage ¿ Replacement character that is used for unknown characters in the character set
  • 25. MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Tools
  • 26. SQL*Plus 1/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 SQL*Plus in a DOS box does not use the regular Windows codepage – Instead it uses the OEM environment (e.g. codepage 850) – Character set part of NLS_LANG must be set to WE8PC850 – Alternatively change codepage using chcp and set different font “The codepage of running SQL*Plus in a DOS box differs from the regular operating system codepage" $> chcp Active Codepage: 850 $> chcp 1252 CONFIRMED
  • 27. SQL*Plus 2/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Until Oracle 10g an ANSI version of SQL*Plus (sqlplusw.exe) exists – Uses the configured Windows codepage (e.g. 1252) – Officially replaced by the SQL Developer On Windows only: SQL*Plus is not UTF8/Unicode aware
  • 28. SQL Developer 1/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 SQL Developer needs no client side NLS configuration – Unicode client Download from Oracle Technology Network (OTN) – http://www.oracle.com/technetwork/developer-tools/sql-developer Change font if □ characters appear in the output – Reason: The used font cannot display the character – Tools > Preferences > Code-Editor > Fonts
  • 29. SQL Developer 2/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Change specific NLS settings of the SQL Developer session – Tools > Preferences > Database > NLS – Changes will be applied immediately
  • 30. Telnet/SSH Client MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Responsible for conversion of the Unix locale to the client's environment – Translation settings must match the encoding of the Unix Shell Example: Connection to an en_EN.ISO8859-15 Unix Shell with PuTTY
  • 31. Locale Builder 1/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 View, modify or create Language, Territory, Character Set or Linguistic Sort definitions Available since Oracle 9i – Windows: %ORACLE_HOME%nlslbuilderlbuilder.exe – Unix: $ORACLE_HOME/nls/lbuilder/lbuilder Open NLS locale data definitions using file or object name
  • 32. Locale Builder 2/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019
  • 33. MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Debugging
  • 34. General 1/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Check data with a Unicode client like SQL Developer Check NLS settings on different levels Client character set is visible in the V$SESSION_CONNECT_INFO view – Available since 11g Release 1 SQL> SELECT * FROM nls_database_parameters; SQL> SELECT * FROM nls_instance_parameters; SQL> SELECT * FROM nls_session_parameters; -- Current session SQL> SELECT client_charset, network_service_banner FROM v$session_connect_info WHERE sid = SYS_CONTEXT('USERENV', 'SID');
  • 35. General 2/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Get NLS_LANG value set in Registry only SQL> host echo %NLS_LANG% %NLS_LANG% SQL> @.[%NLS_LANG%]. SP2-0310: Unable to open file ".[GERMAN_GERMANY.WE8MSWIN1252]..sql"
  • 36. Character Set Health Check MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Use CSSCAN utility to search for incompatible characters (< 12c) – Requires a schema called CSMIG to store internal data Run CSSCAN as SYSDBA – Set FROMCHAR and TOCHAR to the same value Check cs_healthceck.txt for "Convertible" or "Lossy" entries – If no entries exist, the current data is fine SQL> @?/rdbms/admin/csminst.sql $> csscan FULL=Y FROMCHAR=WE8ISO8859P1 TOCHAR=WE8ISO8859P1 ARRAY=1024000 LOG=cs_healthcheck CAPTURE=Y PROCESS=4
  • 37. DUMP Function MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Returns datatype code, length (bytes) and internal representation Supports CHAR, VARCHAR2, NCHAR, NVARCHAR2, DATE, NUMBER – Cannot be used on CLOB or NCLOB columns Useful to check if a specific character is supported – Requires the usage of an Unicode client like SQL Developer – If an insert in a table succeeded the Character Set supports the character SQL> SELECT DUMP(col1, 10) FROM tab1; SQL> SELECT DUMP('Text with € sign', 10, 1, 10) FROM dual;
  • 38. MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Migration
  • 39. Superset vs. Subset MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Character set can be a Superset or a Subset of the new character set Type Description Superset All characters from character set A are included in character set B. Binary Superset Same as Superset, but the binary representations of the character are the same in character set A and B Subset Only a subset of the characters in character set A are included in character set B. Binary Subset Same as Subset, but the binary representations of the character are the same in character set A and B
  • 40. Database Migration Assistant for Unicode (DMU) 1/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Migrates databases from legacy character sets to Unicode – A GUI guides through all steps of the migration process Validation mode for existing Unicode databases – Searches for not correctly encoded characters Version 2.2 was released in November 2017 – Support for JDK 8 – New command-line scanner (DMU-CLS) for scanning databases and generating reports Since version 2.1.1 only database versions 11.2.0.4 and higher are supported – For older database versions, you have to use version 2.1.0 (Patch 21138450) Only supported tool for character set migration in 12c and higher – Replaces CSSCAN and CSALTER – Can only migrate databases to Unicode
  • 41. Database Migration Assistant for Unicode (DMU) 2/2 MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Download from Oracle Technology Network or My Oracle Support – OTN version: OTN Developer License (Evaluation) http://www.oracle.com/technetwork/database/database- technologies/globalization/dmu – MOS version: Program Update under the Database Support Contract (Migration) - Patch #27084436 Requires the installation of the Java Development Kit 8
  • 42. Requirements MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Oracle Database must be 10.2.0.4 (11.2.0.4) or higher – Installed XML Database feature – DBMS_DUMA_INTERNAL package ASCII-based character set Oracle Database Vault must be disabled Data Dictionary must contain ASCII characters only No Flashback archives can exist Data that requires conversions … – … cannot reside in read-only or offline tablespaces – … can be present in tables in the recycle bin – … can be present in reference partitioning key column SQL> @?/rdbms/admin/prvtdumi.plb
  • 43. Repository Configuration Wizard MythBusters Globalization Support - Avoid Data Corruption15.09.201915.09.2019 MythBusters Globalization Support - Avoid Data Corruption
  • 44. Migration MythBusters Globalization Support - Avoid Data Corruption15.09.201915.09.2019 MythBusters Globalization Support - Avoid Data Corruption
  • 45. MythBusters Globalization Support - Avoid Data Corruption15.09.2019 Database Globalization Support Guide 12c Release 2 https://docs.oracle.com/en/database/oracle/oracle-database/12.2/nlspg/index.html Database Globalization Support Guide 18c https://docs.oracle.com/en/database/oracle/oracle-database/18/nlspg/index.html My Oracle Support Notes - https://support.oracle.com 264157.1 The Correct NLS_LANG Setting in Unix Environments 179133.1 The Correct NLS_LANG in a Microsoft Windows Environment 179133.1 NLS_LANG Explained (How does Client-Server Character Conversion Work?) 241047.1 The Priority of NLS Parameters Explained (Where To Define NLS Parameters)
  • 46. Christian Gohmann Senior Consultant Tel. +49-211-58 6664 702 christian.gohmann@trivadis.com 15.09.2019 MythBusters Globalization Support - Avoid Data Corruption
  • 47. Trivadis @ DOAG 2018 #opencompany Booth: 3rd Floor – next to the escalator We share our Know how! Just come across, Live-Presentations and documents archive T-Shirts, Contest and much more We look forward to your visit 15.09.2019 MythBusters Globalization Support - Avoid Data Corruption