Oracle Tipe Data PL/SQL: Boolean, Angka, Tanggal [Contoh]

Apa itu Tipe Data PL/SQL?

Jenis Data dalam PL/SQL digunakan untuk menentukan bagaimana data akan disimpan, ditangani, dan diperlakukan Oracle selama penyimpanan dan pemrosesan data. Tipe data dikaitkan dengan format penyimpanan tertentu dan batasan jangkauan. Di dalam Oracle, setiap nilai atau konstanta ditetapkan dengan tipe data.

Perbedaan utama antara PL/SQL dan SQL tipe datanya adalah, tipe data SQL terbatas pada kolom tabel sedangkan tipe data PL/SQL digunakan di Blok PL/SQL. Informasi lebih lanjut akan dibahas nanti dalam tutorial.

Berikut ini adalah diagram dari berbagai Oracle Tipe Data PL/SQL:

Tipe Data PL/SQL
Tipe Data Berbeda di PL/SQL

Tipe Data KARAKTER PL/SQL

Tipe data ini pada dasarnya menyimpan karakter alfanumerik dalam format string.

Nilai literal harus selalu diapit tanda kutip tunggal saat menugaskannya ke tipe data CHARACTER.

Tipe data karakter ini diklasifikasikan lebih lanjut sebagai berikut:

  • Tipe data CHAR (ukuran string tetap)
  • VARCHAR2 Tipe data (ukuran string variabel)
  • Tipe data VARCHAR
  • NCHAR (ukuran string tetap asli)
  • NVARCHAR2 (ukuran string variabel asli)
  • MENTAH PANJANG dan PANJANG
Data Type Description Sintaksis
ARANG Tipe data ini menyimpan nilai string, dan ukuran string ditetapkan pada saat mendeklarasikannya variabel.

  • Oracle akan mengosongkan variabel jika variabel tersebut tidak menempati seluruh ukuran yang telah dideklarasikan untuknya, Oleh karena itu Oracle akan mengalokasikan memori untuk ukuran yang dinyatakan meskipun variabel tidak menempatinya sepenuhnya.
  • Batasan ukuran untuk tipe data ini adalah 1-2000 byte.
  • Tipe data CHAR lebih tepat digunakan jika ukuran data tetap akan ditangani.
grade CHAR;
manager CHAR (10):= 'guru99';

Penjelasan Sintaks:

  • Pernyataan deklarasi pertama mendeklarasikan variabel 'grade' bertipe data CHAR dengan ukuran maksimal 1 byte (nilai default).
  • Pernyataan deklarasi kedua mendeklarasikan variabel 'manajer' bertipe data CHAR dengan ukuran maksimum 10 dan menetapkan nilai 'guru99' yaitu 6 byte. Oracle akan mengalokasikan memori 10 byte daripada 6 byte dalam kasus ini.
VARCHAR2 Tipe data ini menyimpan string, namun panjang string tidak tetap.

  • Batasan ukuran untuk tipe data ini adalah 1-4000 byte untuk ukuran kolom tabel dan 1-32767 byte untuk variabel.
  • Ukuran ditentukan untuk setiap variabel pada saat deklarasi variabel.
  • Tapi Oracle akan mengalokasikan memori hanya setelah variabel didefinisikan, yaitu, Oracle hanya akan mempertimbangkan panjang sebenarnya dari string yang disimpan dalam variabel untuk alokasi memori daripada ukuran yang telah diberikan untuk variabel di bagian deklarasi.
  • Sebaiknya gunakan tipe data VARCHAR2 daripada tipe data CHAR untuk mengoptimalkan penggunaan memori.
manager VARCHAR2(10) := ‘guru99';

Penjelasan Sintaks:

  • Pernyataan deklarasi di atas mendeklarasikan variabel 'manajer' tipe data VARCHAR2 dengan ukuran maksimum 10 dan menetapkan nilai 'guru99' yaitu 6 byte. Oracle akan mengalokasikan memori hanya 6 byte dalam kasus ini.
Varchar Ini identik dengan tipe data VARCHAR2.

  • Sebaiknya gunakan VARCHAR2 daripada VARCHAR untuk menghindari perubahan perilaku.
manager VARCHAR(10) := ‘guru99';

Penjelasan Sintaks:

  • Pernyataan deklarasi di atas mendeklarasikan variabel 'manajer' bertipe data VARCHAR dengan ukuran maksimum 10 dan menetapkan nilai 'guru99' yaitu 6 byte. Oracle akan mengalokasikan memori hanya 6 byte dalam kasus ini. (Mirip dengan VARCHAR2)
NCHAR Tipe data ini sama dengan tipe data CHAR, namun himpunan karakternya akan sesuai dengan himpunan karakter nasional.

  • Kumpulan karakter ini dapat ditentukan untuk sesi menggunakan NLS_PARAMETERS.
  • Kumpulan karakter dapat berupa UTF16 atau UTF8.
  • Batasan ukurannya adalah 1-2000 byte.
native NCHAR(10);

Penjelasan Sintaks:

  • Pernyataan deklarasi di atas mendeklarasikan variabel 'native' bertipe data NCHAR dengan ukuran maksimum 10.
  • Panjang variabel ini bergantung pada (jumlah panjang) per byte seperti yang didefinisikan dalam kumpulan karakter.
NVARCHAR2 Tipe data ini sama dengan tipe data VARCHAR2, namun himpunan karakternya akan berupa himpunan karakter nasional.

  • Kumpulan karakter ini dapat ditentukan untuk sesi menggunakan NLS_PARAMETERS.
  • Kumpulan karakter dapat berupa UTF16 atau UTF8.
  • Batasan ukurannya adalah 1-4000 byte.
Native var NVARCHAR2(10):='guru99';

Penjelasan Sintaks:

  • Pernyataan deklarasi di atas mendeklarasikan variabel 'Native_var' bertipe data NVARCHAR2 dengan ukuran maksimum 10.
PANJANG dan PANJANG Tipe data ini digunakan untuk menyimpan teks berukuran besar atau data mentah hingga ukuran maksimal 2GB.

  • Ini terutama digunakan dalam kamus data.
  • Tipe data LONG digunakan untuk menyimpan data kumpulan karakter, sedangkan LONG RAW digunakan untuk menyimpan data dalam format biner.
  • Tipe data LONG RAW menerima objek media, gambar, dll. sedangkan LONG hanya berfungsi pada data yang dapat disimpan menggunakan kumpulan karakter.
Large_text LONG;
Large_raw LONG RAW;

Penjelasan Sintaks:

  • Pernyataan deklarasi di atas mendeklarasikan variabel 'Large_text' bertipe data LONG dan 'Large_raw' bertipe data LONG RAW.

Catatan: Penggunaan tipe data LONG tidak disarankan oleh Oracle. Sebaliknya, tipe data LOB sebaiknya diutamakan.

Tipe Data NOMOR PL/SQL

Tipe data ini menyimpan angka tetap atau floating point dengan presisi hingga 38 digit. Tipe data ini digunakan untuk bekerja dengan bidang yang hanya berisi data angka. Variabel dapat dideklarasikan dengan presisi dan detail digit desimal atau tanpa informasi ini. Nilai tidak perlu diapit tanda kutip saat menetapkan tipe data ini.

A NUMBER(8,2);
B NUMBER(8);
C NUMBER;

Penjelasan Sintaks:

  • Pada contoh di atas, deklarasi pertama mendeklarasikan variabel 'A' bertipe data angka dengan presisi total 8 dan angka desimal 2.
  • Deklarasi kedua mendeklarasikan variabel 'B' bertipe data angka dengan presisi total 8 dan tidak ada digit desimal.
  • Deklarasi ketiga adalah yang paling umum, mendeklarasikan variabel 'C' bertipe data angka tanpa batasan presisi atau tempat desimal. Dapat memuat hingga maksimum 38 digit.

Tipe Data BOOLEAN PL/SQL

Tipe data ini menyimpan nilai logika. Oracle Tipe Data Boolean mewakili TRUE atau FALSE dan terutama digunakan dalam pernyataan bersyarat. Nilai tidak perlu diapit tanda kutip saat menetapkan tipe data ini.

Var1 BOOLEAN;

Penjelasan Sintaks:

  • Di atas, variabel 'Var1' dideklarasikan sebagai tipe data BOOLEAN. Output kode akan bernilai benar atau salah berdasarkan kondisi yang ditetapkan.

Tipe Data TANGGAL PL/SQL

Tipe data ini menyimpan nilai dalam format tanggal, seperti tanggal, bulan, dan tahun. Setiap kali suatu variabel didefinisikan dengan tipe data DATE bersama dengan tanggal, variabel tersebut dapat menyimpan informasi waktu dan secara default informasi waktu diatur ke 12:00:00 jika tidak ditentukan. Nilai harus diapit oleh tanda kutip saat menetapkan tipe data ini.

Standar Oracle format waktu untuk input dan output adalah 'DD-MON-YY' dan diatur lagi pada NLS_PARAMETERS (NLS_DATE_FORMAT) pada tingkat sesi.

newyear DATE:='01-JAN-2015';
current_date DATE:=SYSDATE;

Penjelasan Sintaks:

  • Di atas, variabel 'tahun baru' dideklarasikan sebagai tipe data DATE dan diberi nilai 1 Janst, tanggal 2015.
  • Deklarasi kedua mendeklarasikan variabel current_date sebagai tipe data DATE dan menetapkan nilai dengan tanggal sistem saat ini.
  • Kedua variabel ini menyimpan informasi waktu.

Tipe Data PL/SQL LOB

Tipe data ini terutama digunakan untuk menyimpan dan memanipulasi blok besar data tidak terstruktur seperti gambar, file multimedia, dll. Oracle lebih memilih tipe data LOB daripada tipe data LONG karena lebih fleksibel dibandingkan tipe data LONG. Di bawah ini adalah beberapa keunggulan utama LOB dibandingkan tipe data LONG.

  • Jumlah kolom pada tabel bertipe data PANJANG dibatasi 1, sedangkan tabel tidak dibatasi jumlah kolom bertipe data LOB.
  • Alat antarmuka data menerima tipe data LOB dari tabel selama replikasi data, namun menghilangkan kolom PANJANG pada tabel. Kolom PANJANG ini perlu direplikasi secara manual.
  • Ukuran kolom LONG adalah 2GB, sedangkan LOB dapat menyimpan hingga 128 TB.
  • Oracle terus meningkatkan tipe data LOB di setiap rilisnya sesuai dengan kebutuhan modern, sedangkan tipe data LONG bersifat konstan dan tidak mendapatkan banyak pembaruan.

Jadi, akan lebih baik jika menggunakan tipe data LOB daripada tipe data LONG. Berikut ini adalah beberapa tipe data LOB. Tipe-tipe ini dapat menyimpan data hingga ukuran 128 terabyte.

  1. Gumpalan
  2. CLOB dan NCLOB
  3. BFILE
Data Type Description Sintaksis
Gumpalan Tipe data ini menyimpan data LOB dalam format file biner hingga ukuran maksimum 128 TB. Tipe ini tidak menyimpan data berdasarkan rincian set karakter, sehingga dapat menyimpan data tidak terstruktur seperti objek multimedia, gambar, dll.
Binary_data BLOB;

Penjelasan Sintaks:

  • Di atas, variabel 'Binary_data' dideklarasikan sebagai BLOB.
CLOB dan NCLOB Tipe data CLOB menyimpan data LOB ke dalam kumpulan karakter, sedangkan NCLOB menyimpan data dalam kumpulan karakter asli. Karena tipe data ini menggunakan penyimpanan berbasis kumpulan karakter, tipe data ini tidak dapat menyimpan data seperti multimedia, gambar, dll. yang tidak dapat dimasukkan ke dalam string karakter. Ukuran maksimum tipe data ini adalah 128 TB.
Charac_data CLOB;

Penjelasan Sintaks:

  • Di atas, variabel 'Charac_data' dideklarasikan sebagai tipe data CLOB.
BFILE
  • BFILE adalah tipe data yang menyimpan data format biner tidak terstruktur di luar database sebagai file sistem operasi.
  • Ukuran BFILE adalah untuk sistem operasi terbatas, dan merupakan file hanya-baca dan tidak dapat dimodifikasi.

Kesimpulan

Kami telah membahas berbagai tipe data sederhana yang tersedia PL / SQL beserta sintaksnya. Kita akan mempelajari tipe data kompleks di topik selanjutnya.