Unicode je jedním z nejvlivnějších a nejvýkonnějších standardů kódování ve vývojovém světě. Unicode představuje znaky z téměř všech jazyků zakódováním znaků do celočíselného kódu mezi 0 a 0x10ffff.
Díky všestrannosti databází se jednou za čas přistihnete, že převádíte řetězec do jeho reprezentace Unicode.
V tomto tutoriálu se naučíte, jak pomocí funkce decompose() databází Oracle převést dané na jeho reprezentaci Unicode.
Syntaxe funkce Oracle Decompose
Syntaxe funkce je uvedena níže:
DECOMPOSE( string [, { 'CANONICAL' | 'COMPATIBILITY' } ] )
Funkce přijímá dva argumenty:
- Tětiva – představuje řetězec, který má být převeden na složení Unicode. Hodnota tohoto parametru může být CHAR, VARCHAR, NCHAR, NVARCHAR2, CLOB a NCLOB.
- KANONICKÝ – nastavení hodnoty na canonical umožňuje funkci provést kanonický rozklad, který umožňuje rekompozici na původní řetězec. Pokud není zadán, funkce použije tento parametr ve výchozím nastavení.
- KOMPATIBILITA – pokud je hodnota nastavena na kompatibilitu, funkce provede rozklad v režimu kompatibility. Tento režim neumožňuje rekompozici na původní řetězec. Tuto možnost použijte při rozkladu znaků katakana s poloviční a plnou šířkou.
Je dobré mít na paměti, že typy CLOB a NCLOB jsou podporovány prostřednictvím explicitní konverze.
Příklad použití funkce
Následující příklady ukazují, jak používat funkci decompose() databází Oracle.
Příklad 1 – Použití základní funkce
Následující jednoduchý kód ukazuje, jak použít funkci decompose k rozložení řetězce na jeho reprezentaci Unicode.
vyberte decompose('Ahoj') jako výstup z dual;Spuštění výše uvedeného kódu by mělo vrátit výstupní řetězec jako:
Příklad 2 – Získání ASCII kódu
Chcete-li načíst celočíselné hodnoty Unicode, můžeme předat výsledný řetězec funkci asciistr, jak je znázorněno v příkladu níže:
vybrat asciistr(decompose('你好')) jako výstup z dual;Výstup:
Příklad 3 – Použití funkce se znaky, které nejsou Unicode
Pokud funkci poskytneme znaky, které nejsou Unicode, funkce vrátí vstupní řetězec bez jakýchkoli úprav.
Příklad ukázky je následující:
vyberte decompose('l') jako výstup z dual;Výsledek:
Stejný případ platí i při použití funkce asciistr.
vyberte asciistr(('l')) jako výstup z dual;Výstup:
Příklad 4 – Použití funkce s argumentem NULL
Pokud je vstupní hodnota NULL, funkce vrátí hodnotu NULL.
Příklad:
vyberte (NULL) jako výstup z duálního;Výstup:
Příklad 5 – Volání funkce s chybějícími parametry
Parametr řetězec ve funkci je povinný. Pokud se nám nepodaří předat hodnotu řetězce, funkce vrátí chybu, jak je znázorněno:
vyberte () jako výstup z duálního;Výsledek:
Chyba SQL: ORA-00938: nedostatek argumentů pro funkci00938. 00000 – „nedostatek argumentů pro funkci“
Závěr
V tomto tutoriálu jste se naučili, jak používat funkci Oracle decompose() k převodu řetězce na jeho reprezentaci Unicode.