BayuPinasthika
Bayu Pinasthika
30 Okt 2016

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.

Oracle • Teknologi Informasi Leave a comment
%d blogger menyukai ini: