Di Oracle, TRANSLATE(...USING) fungsi mengubah argumennya menjadi kumpulan karakter yang ditentukan untuk konversi antara kumpulan karakter database dan kumpulan karakter nasional.
Fungsi ini jangan disamakan dengan the TRANSLATE() fungsi, yang memungkinkan Anda membuat beberapa substitusi satu-ke-satu karakter tunggal dalam satu operasi.
TRANSLATE(...USING) fungsi didukung di Oracle terutama untuk kompatibilitas ANSI. Oracle merekomendasikan agar kami menggunakan TO_CHAR() dan TO_NCHAR() berfungsi sebagai gantinya.
Sintaks
Sintaksnya seperti ini:
TRANSLATE ( char USING
{ CHAR_CS | NCHAR_CS }
)
Dimana char adalah ekspresi yang akan dikonversi, dan:
- Menentukan
USINGCHAR_CSargumen mengonversicharke dalam set karakter database. Tipe data keluaran adalahVARCHAR2. - Menentukan
USINGNCHAR_CSargumen mengonversicharke dalam rangkaian karakter bangsa. Tipe data keluarannya adalahNVARCHAR2.
Contoh
Berikut ini contoh dasarnya:
SELECT
TRANSLATE('Cat' USING CHAR_CS) AS CHAR_CS,
TRANSLATE('Cat' USING NCHAR_CS) AS NCHAR_CS
FROM DUAL; Hasil:
CHAR_CS NCHAR_CS __________ ___________ Cat Cat
Untuk menunjukkan perbedaannya, inilah yang terjadi ketika kita meneruskannya ke DUMP() fungsi:
SELECT
DUMP(TRANSLATE('Cat' USING CHAR_CS), 17) AS CHAR_CS,
DUMP(TRANSLATE('Cat' USING NCHAR_CS), 17) AS NCHAR_CS
FROM DUAL; Hasil:
CHAR_CS NCHAR_CS _____________________ ______________________________ Typ=1 Len=3: C,a,t Typ=1 Len=6: ^@,C,^@,a,^@,t
Argumen Null
Melewati null karena argumen mengembalikan null :
SET NULL 'null';
SELECT
TRANSLATE(null USING CHAR_CS) AS Result
FROM DUAL; Hasil:
null
Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali null terjadi sebagai akibat dari SQL SELECT penyataan.
Namun, Anda dapat menggunakan SET NULL untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null harus dikembalikan.
Argumen Tidak Ada
Memanggil fungsi dengan tanpa melewati char argumen menghasilkan kesalahan:
SELECT TRANSLATE(USING CHAR_CS)
FROM DUAL; Hasil:
Error starting at line : 1 in command - SELECT TRANSLATE(USING CHAR_CS) FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: