Oracle Decompose

Oracle Decompose



Unicode je jedným z najvplyvnejších a najvýkonnejších kódovacích štandardov vo svete vývoja. Unicode predstavuje znaky z takmer všetkých jazykov kódovaním znakov v celočíselnom kóde medzi 0 a 0x10ffff.

Vďaka všestrannosti databáz sa raz za čas pristihnete, že reťazec konvertujete na reprezentáciu Unicode.







V tomto návode sa naučíte, ako používať funkciu decompose() databáz Oracle na konverziu danej položky na jej reprezentáciu Unicode.



Syntax funkcie Oracle Decompose

Syntax funkcie je uvedená nižšie:



DECOMPOSE( string [, { 'CANONICAL' | 'COMPATIBILITY' } ] )

Funkcia akceptuje dva argumenty:





  1. Reťazec – predstavuje reťazec, ktorý sa má skonvertovať na zloženie Unicode. Hodnota tohto parametra môže byť CHAR, VARCHAR, NCHAR, NVARCHAR2, CLOB a NCLOB.
  2. KANONICKÝ – nastavenie hodnoty na canonical umožňuje funkcii vykonať kanonickú dekompozíciu, ktorá umožňuje rekompozíciu na pôvodný reťazec. Ak nie je zadaný, funkcia použije tento parameter štandardne.
  3. KOMPATIBILITA – ak je hodnota nastavená na kompatibilitu, funkcia vykoná rozklad v režime kompatibility. Tento režim neumožňuje rekompozíciu na pôvodný reťazec. Túto možnosť použite pri rozklade znakov katakana s polovičnou a plnou šírkou.

Je dobré mať na pamäti, že typy CLOB a NCLOB sú podporované prostredníctvom explicitnej konverzie.

Príklad použitia funkcie

Nasledujúce príklady ukazujú, ako používať funkciu decompose() databáz Oracle.



Príklad 1 – Použitie základnej funkcie

Nasledujúci jednoduchý kód ukazuje, ako použiť funkciu decompose na rozloženie reťazca na jeho reprezentáciu Unicode.

vyberte decompose('Ahoj') ako výstup z dual;

Spustenie vyššie uvedeného kódu by malo vrátiť výstupný reťazec ako:

Príklad 2 – Získanie kódu ASCII

Ak chcete získať celočíselné hodnoty Unicode, môžeme odovzdať výsledný reťazec funkcii asciistr, ako je znázornené v príklade nižšie:

vyberte asciistr(decompose('你好')) ako výstup z dual;

Výkon:

Príklad 3 – Použitie funkcie so znakmi, ktoré nie sú Unicode

Ak funkcii poskytneme znaky, ktoré nie sú Unicode, funkcia vráti vstupný reťazec bez akýchkoľvek úprav.

Príklad demonštrácie je uvedený:

vyberte decompose('l') ako výstup z dual;

výsledok:

Rovnaký prípad platí aj pri použití funkcie asciistr.

vyberte asciistr(('l')) ako výstup z dual;

Výkon:

Príklad 4 – Použitie funkcie s argumentom NULL

Ak je vstupná hodnota NULL, funkcia vráti hodnotu NULL.

Príklad:

vyberte (NULL) ako výstup z duálneho;

Výkon:

Príklad 5 – Volanie funkcie s chýbajúcimi parametrami

Parameter reťazca vo funkcii je povinný. Ak sa nám nepodarí odovzdať hodnotu reťazca, funkcia vráti chybu, ako je znázornené:

vyberte () ako výstup z duálneho;

výsledok:

Chyba SQL: ORA-00938: nedostatok argumentov pre funkciu
00938. 00000 –  „nedostatok argumentov pre funkciu“

Záver

V tomto návode ste sa naučili, ako používať funkciu Oracle decompose() na konverziu reťazca na jeho reprezentáciu Unicode.