Bermain Main Dengan String Di PL/SQL

Tipe String

Ada 3 tipe String di Oracle PL/SQL, yaitu:

  • Fixed-Length String

    Adalah String yang panjangnya fixed (sudah ditentukan). Apabila panjangnya kurang, maka secara otomatis akan menambahkan spasi kosong sampai dengan akhir. Tipe data yang biasa digunakan adalah CHAR, NCHAR

  • Variable-Length String

    Adalah string yang panjangnya dinamis (variable). Memori akan menyimpan string tersebut sesuai dengan panjang string sebenarnya, walaupun ukurannya lebih kecil dari panjang string yang ditentukan. Tipe data yang biasa digunakan adalah VARCHAR, VARCHAR2, NVARCHAR2.

  • CLOB (Character Large Object)

    CLOB adalah tipe data yang digunakan untuk menyimpan data karakter yang ukurannya sangat besar hingga tera bytes.

String Dalam Program

Dibawah ini adalah contoh program PL/SQL yang menggunakan deklarasi String.

DECLARE
   nama VARCHAR2(30);
   jurusan VARCHAR2(40);
   greetings CLOB;
   status CHAR(1);
BEGIN
   nama := 'Nursalim';
   jurusan := 'Teknik Informatika';
   greetings := 'Hello! Saya Nursalim dari Jurusan Teknik Informatika UNINDRA';
   status := 'Y';
   
   IF status = 'Y' THEN
      DBMS_OUTPUT.PUT_LINE(nama);
      DBMS_OUTPUT.PUT_LINE(jurusan);
      DBMS_OUTPUT.PUT_LINE(greetings);
   END IF;
END;
/

Menggabungkan Dua String

Untuk menggabungkan dua string, Anda dapat menggunakan operator concatenation ( || ). Untuk lebih jelasnya, Anda dapat lihat seperti contoh program di bawah:

DECLARE
   string1 VARCHAR2(30);
   string2 VARCHAR2(40);
   
BEGIN
   string1 := 'Nursalim';
   string2 := 'Teknik Informatika';

   DBMS_OUTPUT.PUT_LINE(string1||' Jurusan '||string2);   
END;
/

String Built-in Function

Di bawah ini adalah tabel macam-macam fungsi String bawaan (built-int) Oracle PL/SQL

Fungsi Deskripsi
ASCII(x) Menghasilkan nilai ASCII dari karakter x
CHR(x) Menghasilkan nilai karakter dari ASCII x
CONCAT(x,y) Menggabungkan string x dan y
INITCAP(x) Menghasilkan inital letter, yaitu kata yang huruf depannya kapital sedangkan huruf selanjutnya adalah huruf kecil (lowercase).
INSTR(x, str1, [,start] [,occourence] ) Mencari st1 dalam string x berdasarkan posisi awal [start] dan sebanyak [occurence].
LENGTH(x) Mencari panjang dari suatu string x.
LOWER(x) Mengubah String x menjadi huruf kecil (lowercase).
LPAD(x,width[,str1]) Menambahkan (padding) str1 pada string dengan posisi sebelah kiri sampai dengan batas maksimum (width).
LTRIM(x[,str1]) Melakukan proses trim (menghapus spasi) di sebelah string x.
NVL(x,value) Jika nilai x adalah null maka akan menghasilkan nilai value. Sedangkan kalau tidak maka akan menghasilkan x.
NVL2(x,value1, value2) Menghasilkan value1 jika x tidak sama dengan null, dan menghasilkan value2 jika x sama dengan null.
REPLACE(x,string_search, string_replace) Mengganti string_search dengan string_replace pada sebuah string x.
RPAD(x,width[, pad_string]) PAD string x dari sebelah kanan dengan menambahkan pad_string sepanjang string width
RTRIM(x[, trim_string]) TRIM dari sebelah kanan string x
SUBSTR(x, start[, length]) Menghasilkan nilai substring dari string x berdasarkan posisi awal (start) dan panjang string substring (length)
TRIM([trim_char FROM] x) Menghapus/Menghilangkan trim_char dari string x.
UPPER(x) Mengubah String x menjadi huruf besar (uppercase)

Contoh Program

DECLARE
   str1 VARCHAR2(50) := 'Selamat!! belajar PL/SQL ya..';
   str2 VARCHAR2(50) := '....Jangan lupa siapin kopi....';
BEGIN
   DBMS_OUTPUT.PUT_LINE('str1 = '||str1);
   DBMS_OUTPUT.PUT_LINE('str2 = '||str2);
   DBMS_OUTPUT.PUT_LINE('CONCAT (str1,str2) = '||CONCAT(str1,str2));
   DBMS_OUTPUT.PUT_LINE('INITCAP (str1) = '||INITCAP(str1));
   DBMS_OUTPUT.PUT_LINE('INSTR (str1, ''e'', 1) = '||INSTR(str1, 'e', 1));
   DBMS_OUTPUT.PUT_LINE('LENGTH (str1) = '||LENGTH(str1));
   DBMS_OUTPUT.PUT_LINE('LOWER (str1) = '||LOWER(str1));
   DBMS_OUTPUT.PUT_LINE('REPLACE (str1) = '||REPLACE(str1,'a','@'));
   DBMS_OUTPUT.PUT_LINE('SUBSTR (str1, 1, 10) = '||SUBSTR(str1,1,10));
   DBMS_OUTPUT.PUT_LINE('SUBSTR (str1, -10) = '||SUBSTR(str1,-11));
   DBMS_OUTPUT.PUT_LINE('UPPER (str1) = '||UPPER(str1));
END;


Output:

str1 = Selamat!! belajar PL/SQL ya..
str2 = ....Jangan lupa siapin kopi....
CONCAT (str1,str2) = Selamat!! belajar PL/SQL ya......Jangan lupa siapin kopi....
INITCAP (str1) = Selamat!! Belajar Pl/Sql Ya..
INSTR (str1, 'e', 1) = 2
LENGTH (str1) = 29
LOWER (str1) = selamat!! belajar pl/sql ya..
REPLACE (str1) = Sel@m@t!! bel@j@r PL/SQL y@..
SUBSTR (str1, 1, 10) = Selamat!! 
SUBSTR (str1, -10) = PL/SQL ya..
UPPER (str1) = SELAMAT!! BELAJAR PL/SQL YA..

PL/SQL procedure successfully completed.


Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment