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

Fungsi NLS_INITCAP() di Oracle

Di Oracle, NLS_INITCAP() fungsi mengembalikan argumennya dengan huruf pertama setiap kata dalam huruf besar, dan semua huruf lainnya dalam huruf kecil.

Namun, kapitalisasi yang sebenarnya akan tergantung pada susunan yang digunakan. Misalnya, ini bisa menghasilkan lebih dari huruf pertama yang dikapitalisasi.

Ini mirip dengan INITCAP() 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_INITCAP(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 = 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_INITCAP('the lake')
FROM DUAL;

Hasil:

   NLS_INITCAP('THELAKE') 
_________________________ 
The Lake                 

Tentukan Collation

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

SELECT 
    NLS_INITCAP('het ijsselmeer') AS c1,
    NLS_INITCAP('het ijsselmeer', 'NLS_SORT = XDutch') AS c2
FROM DUAL;

Hasil:

               C1                C2 
_________________ _________________ 
Het Ijsselmeer    Het IJsselmeer    

Perhatikan bahwa di kolom kedua, dua huruf pertama IJsselmeer ditulis dengan huruf kapital, sedangkan kolom pertama hanya menggunakan huruf kapital pada huruf pertama.

Dalam bahasa Belanda, ij dianggap sebagai satu huruf, sehingga kedua karakter dikapitalisasi ketika muncul di awal kalimat atau nama diri.

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_INITCAP('het IJsselmeer', 'NLS_SORT = XDutch')) 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.

Bagaimana jika Saya Lulus Semua Huruf UPPERCASE?

Melewati semua huruf besar tidak mengubah hasil:

SELECT 
    NLS_INITCAP('HET IJSSELMEER', 'NLS_SORT = XDutch') AS Result
FROM DUAL;

Hasil:

           RESULT 
_________________ 
Het IJsselmeer    

Nilai Null

Jika ada argumen null , hasilnya null :

SET NULL 'null';

SELECT 
    NLS_INITCAP('het IJsselmeer', null) AS r1,
    NLS_INITCAP(null, 'NLS_SORT = XDutch') AS r2,
    NLS_INITCAP(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_INITCAP() tanpa memberikan argumen apa pun mengembalikan kesalahan:

SELECT NLS_INITCAP()
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT NLS_INITCAP()
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 jumlah argumen yang salah menghasilkan kesalahan:

SELECT NLS_INITCAP('het IJsselmeer', 'NLS_SORT = XDUTCH', 3)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT NLS_INITCAP('het IJsselmeer', 'NLS_SORT = XDUTCH', 3)
FROM DUAL
Error at Command Line : 1 Column : 59
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. apa itu oracle EBS R12

  2. Cadangan Online Vs Offline

  3. Apa cara paling efisien untuk memeriksa apakah ada catatan di Oracle?

  4. Perbandingan penyedia yang kompatibel dengan Entity Framework untuk Oracle?

  5. Cara Memformat Angka dalam Notasi Ilmiah di Oracle