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:
- 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.
- 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.
- 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 funkciu00938. 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.