Bayu Pinasthika

IT Consultant

System Integrator

Cyber Security Analyst

Bayu Pinasthika

IT Consultant

System Integrator

Cyber Security Analyst

Blog Post

Perbedaan CHAR, VARCHAR dan VARCHAR2 di Oracle

Dalam Oracle terdapat 3 tipe data yang menampung data-data alfanumerik atau string, yaitu CHAR, VARCHAR, VARCHAR2. Apa perbedaan diantara ketiga tipe data tersebut dan saat kapan kita menggunakannya? Mari kita bahas satu persatu.

CHAR

CHAR digunakan untuk menyimpan data dengan panjang karakter tetap. Jika tipe data ini dugunakan untuk menyimpan data yang bermacam-macam panjangnya seperti nama ataupun alamat, maka akan banyak memory yang terbuang dalam disk. CHAR cocok digunakan untuk penyimpanan data dengan nilai tetap seperti Jenis Kelamin.

SQL> CREATE TABLE char_test (col1 CHAR(10));
Table created.

SQL> INSERT INTO char_test VALUES (‘qwerty’);
1 row created.

SQL> SELECT col1, length(col1), dump(col1) “ASCII Dump” FROM char_test;

COL1 LENGTH(COL1) ASCII Dump
———- ———— ————————————————————
qwerty 10 Typ=96 Len=10: 113,119,101,114,116,121,32,32,32,32

Dapat dilihat dari hasil query diatas, bahwa col1 menyimpan karakter qwerty sepanjang 10 karakter, yang seharusnya hanya berisi 6 karakter.

VARCHAR

VARCHAR memiliki kegunaan sama dengan VARCHAR2, yaitu menyimpan data-data bertipe alfanumerik sesuai panjang data yang digunakan. Namun Oracle sudah tidak menggunakan VARCHAR lagi dan digantikan oleh VARCHAR2. Dapat kita lihat contoh berikut :

SQL> CREATE TABLE varchar_test (col1 VARCHAR(10));
Table created.

SQL>DESC varchar_test

Name Null? Type
——————————- ——- ————-
COL1 VARCHAR2(10)

Walaupun saat pembuatan tabel, kita menggunakan tipe data VARCHAR, namun Oracle akan mengubahnya langsung menjadi VARCHAR2.

Kemudian kita lakukan query berikut :

SQL> INSERT INTO varchar_test VALUES (‘qwerty’);
1 row created.

SQL> SELECT col1, length(col1), dump(col1) “ASCII Dump” FROM varchar_test;

COL1 LENGTH(COL1) ASCII Dump
———- ———— ————————————————————
qwerty 6 Typ=1 Len=6: 113,119,101,114,116,121

Panjang karakter dari col1 adalah 6 sesuai panjang karakter yang ada di tabel yaitu qwerty.

VARCHAR2

VARCHAR2 digunakan untuk menyimpan karakter alfanumerik atau string dengan menyesuaikan panjang karakter dari data itu sendiri. Panjang karakter pada data di tabel akan sesuai dengan panjang karakter yang disimpan pada disk

SQL> CREATE TABLE varchar2_test (col1 VARCHAR2(10));
Table created.

SQL> INSERT INTO varchar2_test VALUES ('qwerty');
1 row created.

SQL> SELECT col1, length(col1), dump(col1) "ASCII Dump" FROM varchar2_test;

COL1 LENGTH(COL1) ASCII Dump
---------- ------------ ------------------------------------------------------------
qwerty 6 Typ=1 Len=6: 113,119,101,114,116,121

Perbedaan VARCHAR dan VARCHAR2

VARCHAR sudah diganti dengan VARCHAR2 pada pendefinisian tipe data di Oracle, dan Oracle menganjurkan untuk mendeklarasikan VARCHAR2 ketimbang VARCHAR.

Kelebihan dari VARCHAR2 dibandingkan VARCHAR. Antara lain adalah :

  • VARCHAR hanya dapat menampung karakter hingga 2000 byte, sedangkan VARCHAR2 dapat menampung karakter sepanjang 4000 byte.
  • Tipe data VARCHAR akan menampung spasi pada nilai NULL, sedangkan VARCHAR2 tidak akan menampung karakter atau spase sama sekali.
Tags:
Related Posts
Cara Eksport Database Oracle 10g/11g/12g

Kalau pada artikel sebelumnya kita telah membahas cara melakukan import database oracle 10g/11g/12g, maka kali ini saya akan memberikan cara…

Cara Import Database Oracle 10g/11g/12g

Oracle adalah salah satu database yang saat ini paling banyak digunakan. Oracle banyak dipilih karena memiliki keunggulan atau kelebihan tersendiri…