Di Oracle, NLSSORT()
fungsi mengembalikan kunci susunan untuk nilai karakter yang diberikan dan susunan yang ditentukan secara eksplisit atau implisit.
Fungsi ini dapat berguna untuk melakukan perbandingan terhadap nilai string berdasarkan susunan yang ditentukan.
Sintaks
Sintaksnya seperti ini:
NLSSORT(char [, 'nlsparam' ])
Dimana keduanya char
dan ‘nlsparam
' dapat berupa salah satu tipe data CHAR
, VARCHAR2
, NCHAR
, atau NVARCHAR2
.
'nlsparam'
argumen dapat memiliki bentuk berikut:
'NLS_SORT = collation'
Dimana collation
adalah nama dari susunan linguistik atau BINARY
.
NLSSORT()
menggunakan pemeriksaan yang ditentukan untuk menghasilkan kunci pemeriksaan. Jika Anda menghilangkan ‘nlsparam
‘, maka fungsi tersebut menggunakan susunan turunan dari argumen char
.
Contoh
Berikut adalah contoh nilai kembalian fungsi:
SELECT
NLSSORT('Chess') AS Result
FROM DUAL;
Hasil:
RESULT _______________ 436865737300
Tentukan Collation
Dalam contoh ini, saya menentukan susunan:
SELECT
NLSSORT('Schach', 'NLS_SORT=XGERMAN') AS Result
FROM DUAL;
Hasil:
RESULT _______________________________ 691E37141E370003010101010100
Membandingkan Dua String
Berikut adalah contoh bagaimana NSSORT()
fungsi dapat digunakan untuk membandingkan dua string berdasarkan aturan bahasanya:
DECLARE
v1 NVARCHAR2(10) := 'Schach';
v2 NVARCHAR2(10) := 'Schabsel';
BEGIN
IF NLSSORT(v1, 'NLS_SORT=XGERMAN') > NLSSORT(v2, 'NLS_SORT=XGERMAN') THEN
DBMS_OUTPUT.PUT_LINE( 'Yes' );
ELSE
DBMS_OUTPUT.PUT_LINE( 'No' );
END IF;
END;
Hasil:
Yes
Nilai Null
Melewati null
mengembalikan null
:
SELECT
NLSSORT(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
NLSSORT('fasilə', null) AS r2,
NLSSORT(null, null) AS r3
FROM DUAL;
Hasil:
R1 R2 R3 _______ _______ _______ null null 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.
Jumlah Argumen Salah
Memanggil NLSSORT()
tanpa memberikan argumen apa pun mengembalikan kesalahan:
SELECT NLSSORT()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT NLSSORT() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Dan meneruskan terlalu banyak argumen menghasilkan kesalahan:
SELECT NLSSORT('coffee', 'NLS_SORT = XSPANISH', 'time')
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT NLSSORT('coffee', 'NLS_SORT = XSPANISH', 'time') FROM DUAL Error at Command Line : 1 Column : 49 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action:
Informasi Lebih Lanjut
Lihat Referensi Bahasa Oracle SQL untuk informasi lebih lanjut tentang NLSSORT()
fungsi.