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

COLLATION() Fungsi di Oracle

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jejak SQL, 10046 acara di Oracle:trcsess, utilitas tkprof

  2. pola nama tidak valid saat mencoba melewati pemetaan objek tipe Oracle khusus

  3. apa yang terjadi pada fase cutover dari adopsi di R12.2

  4. Oracle INSERT menjadi dua tabel dalam satu query

  5. Apakah mungkin untuk melewatkan nama tabel sebagai parameter di Oracle?