W tym samouczku dowiemy się o funkcji TRANSLATE() w bazie danych Oracle służącej do zamiany sekwencji znaków na inną.
Funkcja tłumaczenia Oracle
W Oracle funkcja translate umożliwia zastąpienie danego zestawu znaków innym, po jednym znaku na raz.
Weź następujący fragment kodu, który wyraża składnię funkcji:
TŁUMACZYĆ ( ciąg, ciąg_z_ciągu, ciąg_zamienny ) ;
Z podanej składni funkcja przyjmuje trzy główne argumenty:
- ciąg — ten parametr określa ciąg, który ma zostać przetłumaczony przez funkcję.
- original_string – Ten parametr pozwala podać zestaw znaków, które mają zostać zastąpione.
- replacement_string – Jak sama nazwa wskazuje, ten parametr umożliwia określenie ciągu pasującego do parametru from_string pod względem długości i typu.
Gdy funkcja translate wykona określone podstawienie, zwraca ciąg z zastąpionymi pasującymi wystąpieniami. Jeśli jednak jakiekolwiek parametry funkcji mają wartość NULL, funkcja automatycznie tworzy typ NULL.
Przykładowe użycie funkcji
Poniżej przedstawiono przykłady demonstrujące użycie funkcji TRANSLATE().
Przykład 1: Użycie funkcji podstawowych
Poniższy kod pokazuje, jak użyć funkcji translate, aby zamienić wszystkie znaki „a” na gwiazdkę:
wybierać Tłumaczyć ( „Bazy danych Oracle” , 'a' , '*' ) Jak przetłumaczony
z podwójnego;
Wynikowy ciąg jest następujący:
PRZETŁUMACZONY---------------------
Lub * wuj d * t * b * jego
Przykład 2: Zastępowanie wielu znaków
Możemy również zastąpić wiele znaków za pomocą funkcji tłumaczenia, jak pokazano w poniższym przykładzie:
z podwójnego;
Wynik:
PRZETŁUMACZONY------------------
Orxcle dxtxyxses
Przykład 3: ustawienie parametru Replacement_String jako pusty
Rozważ ten przykład, który pokazuje, jak zachowuje się funkcja, jeśli ustawimy parametr łańcuch_wymiany na wartość pustą.
z podwójnego;
W takim przypadku funkcja zwraca pusty ciąg znaków. Dzieje się tak, ponieważ pusty łańcuch jest traktowany jako wartość NULL. Pamiętaj, że funkcja zawsze zwraca NULL, jeśli którykolwiek z parametrów ma wartość NULL.
Przykład 4: Niepasująca sekwencja
Co się stanie, jeśli określone znaki from_string nie zostaną znalezione w source_string?
Pokazuje to poniższa ilustracja:
wybierać Tłumaczyć ( „Bazy danych Oracle” , „xx” , '*' ) Jak przetłumaczonyz podwójnego;
Wynik:
PRZETŁUMACZONY------------------
Bazy danych Oracle
Jak można się domyślić, funkcja nie wykonuje żadnej akcji na łańcuchu źródłowym.
Wniosek
W tym samouczku nauczyłeś się, jak używać funkcji TRANSLATE() w bazie danych Oracle do wykonywania zamiany znaków jeden na jeden. Należy zauważyć, że chociaż funkcja translate zachowuje się podobnie do funkcji zamiany, różnią się one w trybie zamiany. Funkcja zamiany wykonuje zamianę całego łańcucha w porównaniu do zamiany jednego znaku na raz w funkcji translate.