Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Fungsi NLSSORT() di Oracle

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyiapkan lingkungan pengembangan untuk mempelajari PL/SQL

  2. EF dan TransactionScope untuk SQL Server dan Oracle tanpa meningkatkan/mencakup ke DTC?

  3. File Respons Pembuatan Otomatis

  4. Cari Tahu Kuartal Mana yang Termasuk Tanggal di Oracle

  5. Mengonversi Angka ke Kata dalam hasil MYSQL! Menggunakan Kueri