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

โšก Ringkasan Cerdas

Tipe Data PL/SQL mendefinisikan bagaimana Oracle Menyimpan, menangani, dan membatasi setiap nilai dalam sebuah blok. Mereka dikelompokkan ke dalam keluarga karakter, angka, Boolean, tanggal, dan objek besar (LOB), masing-masing dengan format penyimpanan, batasan ukuran, dan aturan penugasan sendiri.

  • ๐Ÿ”ค Karakter: CHAR memiliki panjang tetap, VARCHAR2 memiliki panjang variabel, dan NCHAR serta NVARCHAR2 menggunakan set karakter nasional.
  • ๐Ÿ”ข Nomor: Tipe data NUMBER menyimpan nilai titik tetap atau titik mengambang hingga 38 digit presisi.
  • โœ… Boolean: Bernilai BENAR atau SALAH dan terutama digunakan dalam logika kondisional.
  • ๐Ÿ“… Tanggal: Menyimpan tanggal dan waktu, secara default menggunakan tengah malam jika tidak ada waktu yang diberikan.
  • ๏ธ LOB: BLOB, CLOB, NCLOB, dan BFILE menyimpan data tidak terstruktur berukuran besar hingga 128 TB.
  • ๐Ÿ’ก Praktek terbaik: Lebih baik menggunakan VARCHAR2 daripada CHAR dan LOB daripada LONG untuk menghemat memori dan tetap siap menghadapi perkembangan teknologi di masa mendatang.
  • ๐Ÿ”— Cakupan: Tipe data SQL berlaku untuk kolom tabel; tipe data PL/SQL digunakan di dalam blok PL/SQL.

Oracle Tipe Data PL/SQL

Apa itu Tipe Data PL/SQL?

Tipe data Dalam PL/SQL, definisikan bagaimana data akan disimpan, ditangani, dan diproses. Oracle Selama penyimpanan dan pemrosesan. Tipe data dikaitkan dengan format penyimpanan dan batasan rentang tertentu. Dalam OracleSetiap nilai atau konstanta diberi tipe data.

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

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

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

Tipe Data KARAKTER PL/SQL

Tipe data ini menyimpan karakter alfanumerik dalam format string. Nilai literal harus selalu diapit dalam tanda kutip tunggal saat menetapkannya ke tipe data CHARACTER.

Tipe data karakter ini diklasifikasikan lebih lanjut sebagai berikut:

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

  • Oracle akan menambahkan spasi kosong pada variabel jika variabel tersebut tidak menempati seluruh ukuran yang dideklarasikan, jadi Oracle Mengalokasikan memori sesuai ukuran yang dideklarasikan meskipun variabel tersebut tidak memenuhi seluruh memori.
  • Batasan ukurannya adalah 1-2000 byte.
  • Tipe data CHAR lebih tepat digunakan ketika data yang ditangani berukuran tetap.
grade CHAR;
manager CHAR (10):= 'guru99';

Penjelasan Sintaks:

  • Pernyataan pertama mendeklarasikan variabel 'grade' dengan tipe data CHAR dan ukuran maksimum 1 byte (nilai default).
  • Pernyataan kedua mendeklarasikan variabel 'manager' dengan tipe data CHAR dengan ukuran maksimum 10 dan menetapkan nilai 'guru99', yang berukuran 6 byte. Oracle dalam hal ini mengalokasikan 10 byte, bukan 6 byte.
VARCHAR2 Tipe data ini menyimpan string, tetapi panjangnya tidak tetap.

  • Batasan ukurannya adalah 1-4000 byte untuk kolom tabel dan 1-32767 byte untuk variabel.
  • Ukuran ditentukan untuk setiap variabel pada saat deklarasi.
  • Oracle Mengalokasikan memori hanya setelah variabel didefinisikan, sehingga menggunakan panjang sebenarnya dari string yang disimpan, bukan ukuran yang dideklarasikan.
  • Selalu lebih baik menggunakan VARCHAR2 daripada CHAR untuk mengoptimalkan penggunaan memori.
manager VARCHAR2(10) := 'guru99';

Penjelasan Sintaks:

  • Pernyataan tersebut mendeklarasikan variabel 'manager' dengan tipe data VARCHAR2 dengan ukuran maksimum 10 dan menetapkan nilai 'guru99', yang berukuran 6 byte. Oracle hanya mengalokasikan memori sebesar 6 byte di sini.
Varchar Ini identik dengan tipe data VARCHAR2.

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

Penjelasan Sintaks:

  • Pernyataan tersebut mendeklarasikan variabel 'manager' dengan tipe data VARCHAR dengan ukuran maksimum 10 dan menetapkan nilai 'guru99' sebesar 6 byte. Oracle hanya mengalokasikan 6 byte, mirip dengan VARCHAR2.
NCHAR Tipe data ini sama dengan CHAR, tetapi set karakter yang digunakan adalah set 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 tersebut mendeklarasikan variabel 'native' dengan tipe data NCHAR dan ukuran maksimum 10.
  • Panjangnya bergantung pada jumlah byte per karakter yang ditentukan dalam set karakter.
NVARCHAR2 Tipe data ini sama dengan VARCHAR2, tetapi set karakternya adalah set 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 tersebut mendeklarasikan variabel 'Native_var' dengan tipe data NVARCHAR2 dan ukuran maksimum 10.
MENTAH PANJANG dan PANJANG Tipe data ini menyimpan teks besar atau data mentah hingga ukuran maksimum 2 GB.

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

Penjelasan Sintaks:

  • Pernyataan tersebut mendeklarasikan 'Large_text' dengan tipe data LONG dan 'Large_raw' dengan tipe data LONG RAW.

Catatan: Penggunaan tipe data LONG tidak disarankan oleh OracleTipe data LOB sebaiknya lebih diutamakan.

Tipe Data NOMOR PL/SQL

Tipe data ini menyimpan angka titik tetap atau titik mengambang hingga presisi 38 digit. Tipe data ini digunakan untuk bekerja dengan bidang yang hanya berisi data angka. Variabel dapat dideklarasikan dengan detail presisi dan digit desimal atau tanpa detail tersebut. Nilai tidak perlu diapit tanda kutip saat ditetapkan.

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

Penjelasan Sintaks:

  • Deklarasi pertama menyatakan variabel 'A' dengan tipe data angka, presisi total 8, dan 2 digit desimal.
  • Yang kedua menyatakan 'B' dengan tipe data angka, presisi total 8, dan tanpa angka desimal.
  • Yang ketiga adalah yang paling umum, mendeklarasikan 'C' dengan tipe data angka tanpa batasan presisi atau desimal. Tipe data ini dapat menampung hingga 38 digit.

Tipe Data BOOLEAN PL/SQL

Tipe data ini menyimpan nilai logis. Tipe data ini menyimpan nilai logis. Oracle Tipe data Boolean mewakili TRUE atau FALSE dan terutama digunakan dalam pernyataan kondisional. Nilai tidak perlu diapit tanda kutip saat diberikan.

Var1 BOOLEAN;

Penjelasan Sintaks:

  • Variabel 'Var1' dideklarasikan sebagai tipe data BOOLEAN. Outputnya akan berupa true atau false berdasarkan kondisi yang ditetapkan.

Tipe Data TANGGAL PL/SQL

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

Standar Oracle Format waktu untuk input dan output adalah 'DD-MON-YY', yang diatur pada NLS_PARAMETERS (NLS_DATE_FORMAT) di tingkat sesi.

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

Penjelasan Sintaks:

  • Variabel 'newyear' dideklarasikan sebagai tipe data DATE dan diberi nilai 1 Januari 2015.
  • Deklarasi kedua menyatakan 'current_date' sebagai tipe data DATE dan menetapkan tanggal sistem saat ini.
  • Kedua variabel tersebut memuat informasi waktu.

Tipe Data PL/SQL LOB

Tipe data ini terutama digunakan untuk menyimpan dan memanipulasi blok data tidak terstruktur yang besar seperti gambar dan file multimedia. Oracle LOB lebih disukai daripada tipe data LONG karena lebih fleksibel. Keunggulan utama LOB dibandingkan LONG adalah:

  • Tabel hanya dibatasi pada satu kolom LONG, sedangkan pada tabel LOB tidak ada batasan jumlah kolom.
  • Alat antarmuka data menerima LOB selama replikasi tetapi mengabaikan kolom LONG, yang harus direplikasi secara manual.
  • Kolom LONG dapat menyimpan hingga 2 GB, sedangkan LOB dapat menyimpan hingga 128 TB.
  • Oracle Tipe data LOB terus ditingkatkan di setiap rilisnya, sedangkan LONG sebagian besar tidak berubah.

Jadi, selalu lebih baik menggunakan tipe data LOB daripada LONG. Berbagai tipe data LOB di bawah ini dapat menyimpan hingga 128 terabyte:

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

Penjelasan Sintaks:

  • Variabel 'Binary_data' dideklarasikan sebagai BLOB.
CLOB dan NCLOB CLOB menyimpan data LOB dalam set karakter, sedangkan NCLOB menyimpan data dalam set karakter asli. Karena menggunakan penyimpanan berbasis set karakter, keduanya tidak dapat menyimpan data seperti multimedia atau gambar. Ukuran maksimumnya adalah 128 TB.
Charac_data CLOB;

Penjelasan Sintaks:

  • Variabel 'Charac_data' dideklarasikan sebagai tipe data CLOB.
BFILE
  • BFILE menyimpan data biner tidak terstruktur di luar basis data sebagai file sistem operasi.
  • Ukuran BFILE dibatasi oleh sistem operasi, dan file tersebut bersifat hanya baca dan tidak dapat dimodifikasi.

Pertanyaan Umum Demo Slot

CHAR memiliki panjang tetap dan menambahkan spasi hingga ukuran yang dideklarasikan, sehingga membuang ruang untuk nilai yang pendek. VARCHAR2 memiliki panjang variabel dan hanya menyimpan karakter sebenarnya, sehingga lebih disukai untuk sebagian besar kolom string.

LOB memungkinkan banyak kolom per tabel, menyimpan hingga 128 TB, dan terus ditingkatkan di setiap rilis. LONG terbatas pada satu kolom, dibatasi hingga 2 GB, dan dipertahankan terutama untuk kompatibilitas mundur.

Tidak ada di rilis yang lebih lama. BOOLEAN adalah tipe khusus PL/SQL, jadi kolom tabel menggunakan flag NUMBER atau CHAR sebagai gantinya. Ini digunakan langsung di dalam blok untuk logika kondisional.

Ya. Dengan menganalisis nilai sampel berdasarkan panjang, rentang, dan format, AI dapat menyarankan VARCHAR2, NUMBER, DATE, atau LOB, dan menandai kolom yang ukurannya terlalu besar. Konfirmasikan pilihan tersebut dengan data di masa mendatang.

Ya. DATE menyimpan abad, tahun, bulan, hari, jam, menit, dan detik. Jika tidak ada waktu yang diberikan, secara default akan menggunakan tengah malam. Untuk detik pecahan atau zona waktu, gunakan TIMESTAMP sebagai gantinya.

Ringkaslah postingan ini dengan: