Oracle Decompose

Oracle Decompose



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:





  1. 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.
  2. 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í.
  3. 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 funkci
00938. 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.