Archive

Posts Tagged ‘CLOB’

From Varchar to CLOB @Oracle

October 20, 2008 7 comments

Sekedar info… di oracle tidak ada type field text. untuk menyimpan data alfanumeris biasanya menggunakan tipe data varchar2. tetapi varchar2 memiliki keterbatasan yaitu jumlah karakter yang tidak boleh > 4000 karakter. Lalu bagaimana agar bisa menyimpan data yang terdiri dari > 4000 karakter ???. caranya dengan menggunakan tipe data CLOB.

Tetapi hal diatas menjadi agak rumit ketika column yang akan kita alter dari varchar2 ke CLOB telah memiliki data. Sedangkan di oracle kita tidak bisa langsung mengganti tipe data varchar2 ke CLOB seperti sintaks berikut :

ALTER TABLE t MODIFY name CLOB

*

ERROR at line 1:

ORA-22858: invalid alteration of datatype

ada beberapa langkah yang perlu dilakukan untuk mengalter column dari varchar2 ke CLOB, antara lain :

  1. tambahkan kolom baru dengan tipe CLOB
  2. update data pada kolom baru dengan isi dari kolom lama
  3. drop kolom yang bertipe varchar2
  4. rename kolom baru dengan nama kolom yang di drop.

langkah-langkah diatas dapat dibuat ke bentuk skrip berikut :

SQL>ALTER TABLE <nama_tabel> ADD tmp_name CLOB;
Table altered.

SQL>UPDATE <nama_tabel> SET tmp_name=<nama_kolom>;
2 rows updated.

SQL>ALTER TABLE <nama_tabel> DROP COLUMN <nama_kolom>;
Table altered.

SQL>ALTER TABLE <nama_tabel> RENAME COLUMN tmp_name to <nama_kolom>;
Table altered.

SQL>desc <nama_tabel>;

ganti <nama_tabel> dan <nama_kolom> pada script diatas dengan nama tabel dan nama kolom pada database anda.

Tags: , ,
%d bloggers like this: