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

LPAD() Fungsi di Oracle

Di Oracle, LPAD() fungsi memungkinkan Anda untuk mengisi bagian kiri string dengan karakter tertentu, ke sejumlah karakter tertentu.

Cara kerjanya adalah, Anda menentukan berapa panjang string yang dihasilkan. Jika string asli lebih pendek, karakter pengisi akan mengisi ruang yang tersisa.

Sintaks

Sintaksnya seperti ini:

LPAD(expr1, n [, expr2 ])

Dimana:

  • expr1 dan expr2 dapat berupa salah satu tipe data CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , atau NCLOB .
  • n adalah NUMBER integer atau nilai yang dapat dikonversi secara implisit menjadi NUMBER bilangan bulat.

Fungsi mengembalikan expr1 , diisi kiri dengan panjang n karakter dengan urutan karakter dalam expr2 .

Jika expr2 dihilangkan, karakter pengisi adalah satu kosong.

Contoh

Berikut adalah contoh sederhana untuk ditunjukkan:

SELECT LPAD('Cat', 5)
FROM DUAL;

Hasil:

   LPAD('CAT',5) 
________________ 
  Cat           

Perhatikan bahwa angka yang diberikan adalah lebar total dari string yang dihasilkan – bukan jumlah bantalan.

Ini dia lagi jika dibandingkan dengan string asli (non-empuk):

SELECT LPAD('Cat', 5)
FROM DUAL
UNION ALL
SELECT 'Cat'
FROM DUAL;

Hasil:

   LPAD('CAT',5) 
________________ 
  Cat            
Cat             

Tentukan Karakter

Dalam contoh ini saya menentukan karakter yang akan digunakan untuk padding:

SELECT LPAD('Cat', 5, '>')
FROM DUAL;

Hasil:

   LPAD('CAT',5,'>') 
____________________ 
>>Cat               

Padding Lebih Kecil dari String Asli

Jika argumen kedua kurang dari string asli, maka tidak ada padding yang ditambahkan, dan string asli dipersingkat menjadi jumlah karakter yang ditentukan:

SELECT LPAD('Cat', 2)
FROM DUAL;

Hasil:

   LPAD('CAT',2) 
________________ 
Ca              

Contoh Basis Data

Berikut adalah contoh mengisi bagian kiri nilai dalam kolom database:

SELECT 
    country_name,
    LPAD(country_name, 12, '.') AS Padded
FROM countries
FETCH FIRST 5 ROWS ONLY;

Hasil:

   COUNTRY_NAME          PADDED 
_______________ _______________ 
Argentina       ...Argentina    
Australia       ...Australia    
Belgium         .....Belgium    
Brazil          ......Brazil    
Canada          ......Canada    

Nilai Null

Jika salah satu argumennya null hasilnya null :

SET NULL 'null';

SELECT 
    LPAD(null, 3),
    LPAD('Cat', null),
    LPAD('Cat', 3, null)
FROM DUAL;

Hasil:

   LPAD(NULL,3)    LPAD('CAT',NULL)    LPAD('CAT',3,NULL) 
_______________ ___________________ _____________________ 
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 LPAD() tanpa memberikan argumen apa pun mengembalikan kesalahan:

SELECT LPAD()
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LPAD()
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 LPAD('Cat', 1, '>', 2)
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT LPAD('Cat', 1, '>', 2)
FROM DUAL
Error at Command Line : 1 Column : 28
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. Menangani zona waktu di aplikasi web

  2. Menghubungkan SQL Server ke Oracle

  3. Nama Oracle TNS tidak muncul saat menambahkan koneksi baru ke SQL Developer

  4. .NET / Oracle:Cara mengeksekusi skrip dengan pernyataan DDL secara terprogram

  5. Tipe data Tanggal Oracle, diubah menjadi 'YYYY-MM-DD HH24:MI:SS TMZ' melalui SQL