Di Oracle Database, COLLATION()
fungsi mengembalikan nama susunan turunan untuk argumennya.
Sintaks
Sintaksnya seperti ini:
COLLATION(expr)
Dimana expr
harus mengevaluasi ke string karakter tipe CHAR
, VARCHAR2
, LONG
, NCHAR
, atau NVARCHAR2
.
Contoh
Berikut ini contoh dasarnya:
SELECT COLLATION('Boat')
FROM DUAL;
Hasil:
USING_NLS_COMP
Contoh dengan COLLATE
Klausa
Inilah yang terjadi ketika kita menggunakan COLLATE
klausa untuk secara eksplisit menentukan susunan:
SELECT COLLATION('Boat' COLLATE LATIN_AI)
FROM DUAL;
Hasil:
LATIN_AI
Pertimbangan Saat menggunakan NLS_SORT
COLLATION()
fungsi hanya mengembalikan susunan terikat data, dan bukan susunan dinamis yang ditetapkan oleh NLS_SORT
parameter.
Contoh:
SELECT COLLATION('Boat' COLLATE USING_NLS_SORT)
FROM DUAL;
Hasil:
USING_NLS_SORT
Anda dapat menggunakan SYS_CONTEXT()
berfungsi untuk mengembalikan nilai NLS_SORT
parameter:
SELECT SYS_CONTEXT('USERENV','NLS_SORT')
FROM DUAL;
Hasil:
BINARY
Namun, sufiks apa pun seperti _CI
, _AI
, dan _CS
dikembalikan:
SELECT
COLLATION('Boat' COLLATE USING_NLS_SORT_CI) AS "_CI",
COLLATION('Boat' COLLATE USING_NLS_SORT_CS) AS "_CS",
COLLATION('Boat' COLLATE USING_NLS_SORT_AI) AS "_AI"
FROM DUAL;
Hasil:
_CI _CS _AI ____________________ ____________________ ____________________ USING_NLS_SORT_CI USING_NLS_SORT_CS USING_NLS_SORT_AI
Argumen Null
Susunan dikembalikan, bahkan ketika melewati null
:
SELECT COLLATION(null)
FROM DUAL;
Hasil:
USING_NLS_COMP
Jumlah Argumen Salah
Memanggil fungsi tanpa meneruskan argumen apa pun menghasilkan kesalahan:
SELECT COLLATION()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT COLLATION() 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:
Dan meneruskan terlalu banyak argumen juga menghasilkan kesalahan:
SELECT COLLATION('Boat', 'Dang')
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT COLLATION('Boat', 'Dang') 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: