String dalam PL/SQL sebenarnya adalah urutan karakter dengan spesifikasi ukuran opsional. Karakter-karakter tersebut bisa berupa angka, huruf, spasi, karakter khusus, atau kombinasi dari semuanya. PL/SQL menawarkan tiga jenis string:
- Fixed-length strings (string berukuran tetap) – Pada jenis string ini, programmer menentukan panjang string saat mendeklarasikannya. String tersebut akan diisi dengan spasi di sebelah kanan hingga mencapai panjang yang ditentukan.
- Variable-length strings (string berukuran variabel) – Pada jenis string ini, diberikan panjang maksimum hingga 32.767 karakter, dan tidak ada penambahan spasi secara otomatis.
- Character large objects (CLOBs) – Ini adalah string berukuran variabel yang dapat mencapai kapasitas hingga 128 terabyte.
String dalam PL/SQL dapat berupa variabel atau literal. String literal dikelilingi oleh tanda kutip. Sebagai contoh,
'This is a string literal.' Or 'hello world'
Untuk menyertakan tanda kutip tunggal di dalam string literal, Anda perlu mengetikkan dua tanda kutip tunggal berdampingan. Sebagai contoh,
'this isn''t what it looks like'
Declaring String Variables
Database Oracle menyediakan banyak tipe data string, seperti CHAR, NCHAR, VARCHAR2, NVARCHAR2, CLOB, dan NCLOB. Tipe data yang diawali dengan ‘N’ adalah tipe data ‘national character set’ yang menyimpan data karakter Unicode.
Jika Anda perlu mendeklarasikan string dengan panjang yang dapat bervariasi, Anda harus menyediakan panjang maksimum dari string tersebut. Sebagai contoh, tipe data VARCHAR2. Berikut ini adalah contoh mendeklarasikan dan menggunakan beberapa variabel string –
DECLARE name varchar2(20); company varchar2(30); introduction clob; choice char(1); BEGIN name := 'John Smith'; company := 'Infotech'; introduction := ' Hello! I''m John Smith from Infotech.'; choice := 'y'; IF choice = 'y' THEN dbms_output.put_line(name); dbms_output.put_line(company); dbms_output.put_line(introduction); END IF; END /
Output
John Smith Infotech Hello! I'm John Smith from Infotech. PL/SQL procedure successfully completed
Untuk mendeklarasikan string dengan panjang tetap, gunakan tipe data CHAR. Di sini, Anda tidak perlu menentukan panjang maksimum untuk variabel dengan panjang tetap. Jika Anda tidak menyertakan batasan panjang, Oracle Database secara otomatis menggunakan panjang maksimum yang diperlukan. Berikut adalah dua deklarasi yang identik –
red_flag CHAR(1) := 'Y'; red_flag CHAR := 'Y';
PL/SQL menyediakan operator penggabungan (||) untuk menggabungkan dua string. Berikut adalah tabel yang menyediakan fungsi-fungsi string yang disediakan oleh PL/SQL:
Function | Description |
---|---|
CONCAT | Menggabungkan dua atau lebih string |
LENGTH | Mengembalikan panjang string |
INSTR | Mengembalikan posisi kemunculan pertama dari substring dalam string |
SUBSTR | Mengembalikan substring dari string dengan posisi dan panjang yang ditentukan |
LOWER | Mengonversi string menjadi huruf kecil |
UPPER | Mengonversi string menjadi huruf besar |
LTRIM | Menghapus karakter spasi di sebelah kiri string |
RTRIM | Menghapus karakter spasi di sebelah kanan string |
TRIM | Menghapus karakter spasi di sebelah kiri dan kanan string |
REPLACE | Mengganti semua kemunculan substring dengan substring lain dalam string |
TRANSLATE | Mengganti set karakter dalam string dengan set karakter lain |
SUBSTITUE | Mengganti semua kemunculan substring dengan substring lain dalam string |
CHR | Mengembalikan karakter yang sesuai dengan kode ASCII yang diberikan |
ASCII | Mengembalikan kode ASCII dari karakter yang diberikan |
LIKE | Digunakan dalam pernyataan WHERE untuk mencocokkan pola string dengan wildcard |
REGEXP_LIKE | Digunakan dalam pernyataan WHERE untuk mencocokkan pola string dengan ekspresi reguler |
Contoh:
DECLARE greetings varchar2(11) := 'hello world'; BEGIN dbms_output.put_line(UPPER(greetings)); dbms_output.put_line(LOWER(greetings)); dbms_output.put_line(INITCAP(greetings)); /* retrieve the first character in the string */ dbms_output.put_line ( SUBSTR (greetings, 1, 1)); /* retrieve the last character in the string */ dbms_output.put_line ( SUBSTR (greetings, -1, 1)); /* retrieve five characters, starting from the seventh position. */ dbms_output.put_line ( SUBSTR (greetings, 7, 5)); /* retrieve the remainder of the string, starting from the second position. */ dbms_output.put_line ( SUBSTR (greetings, 2)); /* find the location of the first "e" */ dbms_output.put_line ( INSTR (greetings, 'e')); END; /
Output
HELLO WORLD hello world Hello World h d World ello World 2 PL/SQL procedure successfully completed.
Sumber https://www.tutorialspoint.com/plsql/plsql_strings.htm