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

Fungsi NLS_LOWER() di Oracle

Di Oracle, NLS_LOWER() fungsi mengembalikan argumennya dengan semua huruf dalam huruf kecil.

Ini mirip dengan LOWER() fungsi, kecuali bahwa ia menerima argumen kedua yang memungkinkan Anda untuk menentukan susunan. Susunan menangani persyaratan linguistik khusus untuk konversi kasus.

Sintaks

Sintaksnya seperti ini:

NLS_LOWER(char [, 'nlsparam' ])

Dimana keduanya char dan 'nlsparam' dapat berupa salah satu tipe data CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , atau NCLOB .

'nlsparam' argumen dapat memiliki bentuk berikut:

'NLS_SORT = sort'

Dimana sort adalah susunan bernama.

Jika Anda menghilangkan argumen ini, susunan fungsi yang ditentukan akan digunakan.

Contoh

Berikut adalah contoh sederhana untuk ditunjukkan:

SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
FROM DUAL;

Hasil:

          RESULT 
________________ 
homer symptom   

Hal yang sama berlaku ketika argumen menggunakan kasus campuran:

SELECT NLS_LOWER('Homer Symptom') AS Result
FROM DUAL;

Hasil:

          RESULT 
________________ 
homer symptom   

Dan jika argumennya sudah huruf kecil, maka hasilnya sama dengan inputannya:

SELECT NLS_LOWER('homer symptom') AS Result
FROM DUAL;

Hasil:

          RESULT 
________________ 
homer symptom   

Tentukan Collation

Berikut adalah contoh yang menunjukkan bagaimana menentukan susunan dapat mengubah hasil:

SELECT 
    NLS_LOWER('BALIQ') AS r1,
    NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;

Hasil:

      R1       R2 
________ ________ 
baliq    balıq   

Perhatikan bahwa kolom kedua menggunakan huruf kecil tanpa titik i karakter, yang menganut sistem penulisan Azerbaijan.

Perhatikan bahwa NLS_SORT menimpa susunan argumen pertama hanya pada saat eksekusi. Oleh karena itu, pernyataan berikut mengembalikan susunan argumen pertama, bukan yang kedua:

SELECT
    COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
FROM DUAL;

Hasil:

        COLLATION 
_________________ 
USING_NLS_COMP   

Subjek collations bisa sangat kompleks. Lihat Lampiran C dalam Panduan Dukungan Globalisasi Database Oracle untuk aturan penentuan susunan dan aturan turunan susunan untuk fungsi ini.

Nilai Null

Melewati null mengembalikan null :

SELECT
    NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
    NLS_LOWER('BALIQ', null) AS r2,
    NLS_LOWER(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 NLS_LOWER() tanpa memberikan argumen apa pun mengembalikan kesalahan:

SELECT NLS_LOWER()
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT NLS_LOWER()
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 NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL
Error at Command Line : 1 Column : 54
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 -  "too many arguments for function"
*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. Ekspor Data ke File JSON di Oracle 11g Menggunakan PL/SQL

  2. java.sql.SQLException:Kumpulan Hasil Habis

  3. Oracle:Menggabungkan beberapa hasil dalam subquery menjadi satu nilai yang dipisahkan koma

  4. Hibernasi> CLOB> Oracle :(

  5. Tabel bermutasi, pemicu/fungsi mungkin tidak melihatnya (menghentikan nilai rata-rata turun di bawah 2,5)