Variabel, konstanta, dan parameter PL/SQL harus memiliki tipe data yang valid, yang menentukan format penyimpanan, batasan, dan rentang nilai yang valid. Kita akan fokus pada tipe data SKALAR dan LOB dalam bab ini. Dua tipe data lainnya akan dibahas dalam bab lain.
No | Kategori dan Deskripsi |
1 | Scalar Single Values tanpa komponen internal, seperti NUMBER, DATE, atau BOOLEAN. |
2 | Large Object (LOB) Pointers ke objek-objek besar yang disimpan secara terpisah dari item data lainnya, seperti teks, gambar grafis, klip video, dan gelombang suara. |
3 | Composite Item data yang memiliki komponen internal yang dapat diakses secara individu”. Contohnya, koleksi (collections) dan rekaman (records). |
4 | Reference Pointer ke data item lain |
PL/SQL Scalar Data Types and Subtypes
Tipe Data Skalar dan Subtipe PL/SQL terbagi menjadi kategori-kategori berikut
NO | Type Data dan Deskripsi |
1 | Numeric Tipe data numerik dalam PL/SQL digunakan untuk menyimpan dan memanipulasi nilai-nilai numerik. Ini mencakup tipe data seperti NUMBER, INTEGER, dan DECIMAL. Tipe data numerik memungkinkan operasi aritmatika seperti penjumlahan, pengurangan, perkalian, dan pembagian dilakukan pada nilai-nilai tersebut. Contoh penggunaan tipe data numerik adalah untuk menghitung total harga, melakukan perhitungan matematika, atau mengolah data numerik dalam program PL/SQL. |
2 | Char Tipe data alfanumerik dalam PL/SQL digunakan untuk menyimpan nilai-nilai yang terdiri dari karakter tunggal atau rangkaian karakter. Contoh tipe data ini termasuk CHAR dan VARCHAR2. Tipe data alfanumerik memungkinkan Anda menyimpan dan memanipulasi teks, string, atau data yang terdiri dari kombinasi huruf, angka, dan karakter khusus lainnya. Anda dapat melakukan operasi seperti penggabungan (concatenation), pemotongan (substring), dan pencarian (searching) pada nilai-nilai alfanumerik ini. Contoh penggunaan tipe data alfanumerik adalah untuk menyimpan nama, alamat, atau informasi teks lainnya dalam program PL/SQL. |
3 | Boolean Tipe data logika dalam PL/SQL digunakan untuk menyimpan nilai-nilai yang mewakili kebenaran atau ketidakbenaran suatu pernyataan. Tipe data logis umumnya direpresentasikan oleh BOOLEAN di PL/SQL. Tipe data logis memungkinkan Anda melakukan operasi logis seperti AND, OR, dan NOT pada nilai-nilai tersebut. Anda dapat menggunakan tipe data logis untuk mengontrol alur eksekusi program berdasarkan kondisi tertentu atau untuk memvalidasi kebenaran suatu pernyataan. Contoh penggunaan tipe data logis adalah dalam pengambilan keputusan berdasarkan kondisi, pengontrolan loop, atau pemrograman berbasis aturan. |
4 | DateTime Tipe data tanggal dan waktu dalam PL/SQL digunakan untuk menyimpan nilai-nilai yang berkaitan dengan tanggal dan waktu. Tipe data ini mencakup DATE dan TIMESTAMP. Tipe data tanggal dan waktu memungkinkan Anda untuk menyimpan informasi tentang tanggal, bulan, tahun, jam, menit, dan detik. Anda dapat melakukan operasi seperti perhitungan selisih tanggal, penambahan atau pengurangan waktu, pemformatan tampilan tanggal dan waktu, dan lain sebagainya. Tipe data tanggal dan waktu juga mendukung fungsi bawaan PL/SQL untuk memanipulasi dan membandingkan nilai-nilai tanggal dan waktu. Contoh penggunaan tipe data tanggal dan waktu adalah dalam pengolahan data jadwal, pencatatan waktu transaksi, atau pengaturan waktu dalam program PL/SQL. |
PL/SQL menyediakan subtipe dari tipe data. Misalnya, tipe data NUMBER memiliki subtipe yang disebut INTEGER. Anda dapat menggunakan subtipe dalam program PL/SQL Anda untuk membuat tipe data kompatibel dengan tipe data dalam program lain sambil menyisipkan kode PL/SQL dalam program lain, seperti program Java.
PL/SQL Numeric Data Types and Subtypes
Tipe data numeric sebagai berikut;
No | Tipe Data dan Deskripsi |
1 | PLS_INTEGER adalah tipe data yang digunakan untuk menyimpan bilangan bulat positif dan negatif. Dalam contoh ini, bilangan bulat bertanda memiliki rentang nilai antara -2,147,483,648 hingga 2,147,483,647. Rentang ini adalah batas maksimum dan minimum yang dapat direpresentasikan oleh bilangan bulat bertanda dalam 32 bit. |
2 | BINARY_INTEGER adalah tipe data yang digunakan untuk menyimpan bilangan bulat positif dan negatif. Dalam contoh ini, bilangan bulat bertanda memiliki rentang nilai antara -2,147,483,648 hingga 2,147,483,647. Rentang ini adalah batas maksimum dan minimum yang dapat direpresentasikan oleh bilangan bulat bertanda dalam 32 bit. |
3 | BINARY_FLOAT adalah tipe data yang digunakan untuk merepresentasikan bilangan pecahan dengan presisi yang lebih rendah. Format ini mengikuti standar IEEE 754 yang umum digunakan dalam pemrograman komputer. |
4 | BINARY_DOUBLE adalah tipe data yang digunakan untuk merepresentasikan bilangan pecahan dengan presisi yang lebih tinggi. Format ini mengikuti standar IEEE 754 yang umum digunakan dalam pemrograman komputer. |
5 | NUMBER(prec, scale) Dalam tipe data NUMBER(prec, scale), “prec” mewakili presisi dan “scale” mewakili skala. Presisi mengacu pada jumlah digit yang dapat disimpan dalam angka, sedangkan skala mengacu pada jumlah digit desimal yang dapat disimpan. |
6 | DECIMAL(prec, scale) Tipe data DEC(prec, scale) mirip dengan tipe data NUMBER(prec, scale), tetapi digunakan secara khusus untuk angka desimal. Angka desimal memiliki skala yang tetap dan dapat merepresentasikan pecahan dengan presisi yang didefinisikan. |
7 | NUMERIC(pre, secale) Tipe data NUMERIC(prec, scale) mirip dengan tipe data NUMBER(prec, scale) dalam PL/SQL. Keduanya digunakan untuk menyimpan angka dengan presisi dan skala yang ditentukan. Tipe data NUMERIC digunakan secara umum dalam database, sementara NUMBER lebih sering digunakan dalam PL/SQL. |
9 | DOUBLE PRECISION DOUBLE PRECISION adalah tipe data floating-point berpresisi ganda dalam PL/SQL. Dalam format ini, angka pecahan disimpan menggunakan 64 bit atau 8 byte, memberikan presisi yang tinggi untuk perhitungan numerik yang membutuhkan akurasi lebih besar. |
10 | FLOAT FLOAT adalah tipe data floating-point dalam PL/SQL yang digunakan untuk menyimpan angka pecahan dengan presisi yang bervariasi. Tipe data FLOAT menggunakan representasi floating-point berdasarkan standar IEEE 754, yang memungkinkan representasi angka pecahan dalam format biner dengan presisi yang dapat disesuaikan. |
11 | INTEGER INTEGER adalah tipe data dalam PL/SQL yang digunakan untuk menyimpan bilangan bulat. Tipe data INTEGER hanya menerima nilai bilangan bulat tanpa komponen desimal, yang berarti tidak ada angka di belakang koma. |
12 | SMALLINT adalah tipe data numerik dalam PL/SQL yang digunakan untuk menyimpan bilangan bulat dengan rentang yang lebih kecil daripada tipe data INTEGER. |
13 | REAL adalah tipe data numerik dalam PL/SQL yang digunakan untuk menyimpan angka pecahan dengan presisi yang lebih rendah dibandingkan dengan tipe data FLOAT atau DOUBLE PRECISION. |
Contoh
DECLARE num1 INTEGER; num2 REAL; num3 DOUBLE PRECISION; BEGIN null; END; /
Ketika code di atas di kompile dan di execute maka
PL/SQL procedure successfully completed
PL/SQL Character Data Types and Subtypes
No | Tipe Data dan Deskripsi |
1 | CHAR adalah tipe data dalam PL/SQL yang digunakan untuk menyimpan data karakter dengan panjang tetap. |
2 | VARCHAR2 adalah tipe data dalam PL/SQL yang digunakan untuk menyimpan data karakter dengan panjang variabel. |
3 | RAW adalah tipe data dalam PL/SQL yang digunakan untuk menyimpan data biner dengan panjang tetap. |
4 | NCHAR adalah tipe data dalam PL/SQL yang digunakan untuk menyimpan data karakter unicode dengan panjang tetap. |
5 | NVARCHAR2 NVARCHAR2 adalah tipe data dalam PL/SQL yang digunakan untuk menyimpan data karakter unicode dengan panjang variabel. |
6 | LONG Tipe data LONG adalah tipe data dalam PL/SQL yang digunakan untuk menyimpan teks panjang atau data karakter dengan panjang variabel yang lebih besar dari tipe data CHAR atau |
7 | LONG RAW adalah tipe data dalam PL/SQL yang digunakan untuk menyimpan data biner panjang yang sangat besar dalam format mentah atau tidak terstruktur. |
8 | ROWID adalah tipe data dalam PL/SQL yang digunakan untuk menyimpan identifier fisik yang unik untuk setiap baris dalam tabel basis data. |
9 | UROWID adalah sebuah nilai unik yang secara unik mengidentifikasi baris dalam sebuah tabel dalam konteks basis data. |
PL/SQL Boolean Data Types
Tipe data BOOLEAN menyimpan nilai logika yang digunakan dalam operasi logika. Nilai-nilai logika yang dapat disimpan adalah nilai Boolean TRUE dan FALSE, serta nilai NULL.
Namun, SQL tidak memiliki tipe data yang setara dengan BOOLEAN. Oleh karena itu, nilai Boolean tidak dapat digunakan dalam :
- SQL statements
- Built-in SQL functions (such as TO_CHAR)
- PL/SQL functions invoked from SQL statements
PL/SQL Datetime and Interval Types
Tipe data DATE digunakan untuk menyimpan tanggal dan waktu dengan panjang tetap, yang mencakup waktu dalam detik sejak tengah malam. Tanggal yang valid berkisar dari 1 Januari 4712 SM hingga 31 Desember 9999 M.
Format tanggal default ditentukan oleh parameter inisialisasi Oracle NLS_DATE_FORMAT. Misalnya, format default mungkin adalah ‘DD-MON-YY’, yang mencakup angka dua digit untuk hari dalam bulan, singkatan nama bulan, dan dua digit terakhir tahun. Misalnya, 01-OCT-12.
Parameter NLS_DATE_FORMAT mempengaruhi cara Oracle menampilkan tanggal dan bagaimana tanggal diterima dalam pernyataan SQL. Dengan mengubah nilai parameter NLS_DATE_FORMAT, dapat mengatur format yang diinginkan untuk tampilan tanggal.
Setiap nilai DATE mencakup abad, tahun, bulan, hari, jam, menit, dan detik. Tabel berikut menunjukkan nilai yang valid untuk setiap bidang:
- Century (Abad): 00 hingga 99
- Year (Tahun): 4712 SM hingga 9999 M
- Month (Bulan): 1 hingga 12
- Day (Hari): 1 hingga 31 (tergantung pada bulan dan apakah tahun kabisat atau tidak)
- Hour (Jam): 0 hingga 23
- Minute (Menit): 0 hingga 59
- Second (Detik): 0 hingga 59
PL/SQL Large Object (LOB) Data Types
Tipe data Large Object (LOB) merujuk pada item data besar seperti teks, gambar grafis, klip video, dan gelombang suara. Tipe data LOB memungkinkan akses efisien, acak, secara berkeping-keping terhadap data ini. Berikut adalah tipe data LOB PL/SQL yang telah ditentukan sebelumnya:
- BLOB (Binary Large Object): Tipe data ini digunakan untuk menyimpan data biner seperti gambar, file audio/video, atau file mentah lainnya. Tipe data BLOB dapat menampung hingga 4 gigabyte (GB) data.
- CLOB (Character Large Object): Tipe data ini digunakan untuk menyimpan data teks dalam format karakter, seperti dokumen teks panjang, XML, atau HTML. Tipe data CLOB dapat menampung hingga 4 gigabyte (GB) data.
- NCLOB (National Character Large Object): Tipe data ini mirip dengan CLOB, tetapi digunakan untuk menyimpan data teks dalam set karakter yang lebih luas, seperti UTF-8 atau Unicode. Tipe data NCLOB dapat menampung hingga 4 gigabyte (GB) data.
- BFILE (Binary File): Tipe data ini digunakan untuk menyimpan referensi eksternal ke file biner yang berada di luar basis data. Tipe data BFILE tidak menyimpan file secara langsung dalam basis data, melainkan menyimpan alamat file yang dapat digunakan untuk mengaksesnya.
PL/SQL User-Defined Subtypes
Subtipe adalah subset dari tipe data lain, yang disebut tipe dasarnya. Sebuah subtipe memiliki operasi yang valid yang sama dengan tipe dasarnya, tetapi hanya sebagian dari nilai yang valid.
PL/SQL telah mendefinisikan beberapa subtipe di dalam paket STANDARD. Sebagai contoh, PL/SQL telah mendefinisikan subtipe CHARACTER dan INTEGER sebagai berikut:
SUBTYPE CHARACTER IS CHAR; SUBTYPE INTEGER IS NUMBER(38,0);
Anda dapat mendefinisikan dan menggunakan subtipe sendiri. Program berikut ini menggambarkan definisi dan penggunaan subtipe yang ditentukan pengguna:
DECLARE SUBTYPE name IS char(20); SUBTYPE message IS varchar2(100); salutation name; greetings message; BEGIN salutation := 'Reader '; greetings := 'Welcome to the World of PL/SQL'; dbms_output.put_line('Hello ' || salutation || greetings); END; /
Output
Hello Reader Welcome to the World of PL/SQL PL/SQL procedure successfully completed.
Sumber : https://www.tutorialspoint.com/plsql/plsql_data_types.htm