Unicode to jeden z najbardziej wpływowych i potężnych standardów kodowania w świecie programowania. Unicode reprezentuje znaki z prawie wszystkich języków poprzez kodowanie znaków w kodzie całkowitym z zakresu od 0 do 0x10ffff.
Ze względu na wszechstronność baz danych, od czasu do czasu będziesz musiał konwertować ciąg znaków na jego reprezentację w Unicode.
W tym samouczku dowiesz się, jak korzystać z funkcji decompose() baz danych Oracle, aby przekonwertować dane na ich reprezentację w Unicode.
Składnia funkcji rozkładania Oracle
Składnia funkcji jest pokazana poniżej:
DECOMPOSE(string [, { 'KANONICZNY' | 'ZGODNOŚĆ' } ] )
Funkcja przyjmuje dwa argumenty:
- Strunowy – reprezentuje ciąg, który ma zostać przekonwertowany na kompozycję Unicode. Wartością tego parametru może być CHAR, VARCHAR, NCHAR, NVARCHAR2, CLOB i NCLOB.
- KANONICZNY – ustawienie wartości na canonical umożliwia funkcji wykonanie dekompozycji kanonicznej, która pozwala na rekompozycję do oryginalnego łańcucha. Jeśli nie zostanie określony, funkcja domyślnie użyje tego parametru.
- ZGODNOŚĆ – jeśli wartość jest ustawiona na zgodność, funkcja przeprowadzi dekompozycję w trybie zgodności. Ten tryb nie pozwala na rekompozycję do oryginalnej struny. Użyj tej opcji podczas rozkładania znaków katakana o połowie i pełnej szerokości.
Warto pamiętać, że typy CLOB i NCLOB są obsługiwane przez jawną konwersję.
Przykładowe użycie funkcji
Poniższe przykłady pokazują, jak używać funkcji decompose() baz danych Oracle.
Przykład 1 — Użycie funkcji podstawowych
Poniższy prosty kod pokazuje, jak używać funkcji rozkładu do dekompozycji ciągu do jego reprezentacji Unicode.
wybierz decompose('Hello') jako wyjście z dual;Uruchomienie powyższego kodu powinno zwrócić ciąg wyjściowy jako:
Przykład 2 – Uzyskanie kodu ASCII
Aby pobrać wartości całkowite Unicode, możemy przekazać wynikowy ciąg do funkcji asciistr, jak pokazano w poniższym przykładzie:
wybierz asciistr(decompose('你好')) jako wyjście z dual;Wyjście:
Przykład 3 – Używanie funkcji ze znakami spoza Unicode
Jeśli udostępnimy funkcję ze znakami spoza Unicode, funkcja zwróci ciąg wejściowy bez żadnych modyfikacji.
Przykładowa demonstracja jest następująca:
wybierz decompose('l') jako wyjście z dual;Wynik:
Ten sam przypadek ma zastosowanie nawet w przypadku korzystania z funkcji asciistr.
wybierz asciistr(('l')) jako wyjście z dual;Wyjście:
Przykład 4 – Użycie funkcji z argumentem NULL
Funkcja zwróci wartość NULL, jeśli wartość wejściowa jest równa NULL.
Przykład:
wybierz (NULL) jako wyjście z podwójnego;Wyjście:
Przykład 5 – Wywołanie funkcji z brakującymi parametrami
Parametr string w funkcji jest wymagany. Dlatego jeśli nie uda nam się przekazać wartości ciągu, funkcja zwróci błąd, jak pokazano:
wybierz () jako wyjście z podwójnego;Wynik:
Błąd SQL: ORA-00938: za mało argumentów dla funkcji00938. 00000 - „za mało argumentów dla funkcji”
Wniosek
W tym samouczku nauczyłeś się, jak używać funkcji decompose() Oracle do konwersji ciągu znaków na jego reprezentację w Unicode.