Thursday, November 3, 2011

Pencarian dan Pembandingan Type Data Colom

Saat Kita membuat sebuah query adakalanya kita menjoinkan atau merelasikan beberapa table. Lalu saat kita merelasikan tabel - tabel itu ternyata data tidak kunjung muncul, padahal seharusnya data itu muncul.

Oleh sebab itu kita lihat atau amati type data yang digunakan oleh masing-masing tabel itu dan juga panjangnya. Jika terjadi perbedaan maka akan membutuhkan bantuan seperti halnya TRIM dan UPPER.

Contoh:
Select * From T_MST_BARANG A INNER JOIN T_MST_BARANG_WARNA B ON A.KODE_WARNA = B.KODE_WARNA

Ternyata tidak muncul dikarenakan di T_MST_BARANG CHAR(10) Sedangkan T_MST_BARANG_WARNA VARCHAR2(10)

Akhirnya kita menggunakan TRIM :
Select * From T_MST_BARANG A INNER JOIN T_MST_BARANG_WARNA B ON TRIM(A.KODE_WARNA) = TRIM(B.KODE_WARNA)

Data akan muncul hanya saja penggunaan TRIM akan memakan resources. Akan sangat terasa jika Database sudah di akses oleh banyak user dan juga data yang cukup besar.

Maka solusinya kita harus merubah strukture tabel.
Kita rubah T_MST_BARANG CHAR(10) menjadi T_MST_BARANG VARCHAR2(10) lalu kita update
datanya karena type data CHAR yang tidak diisi oleh data akan membuat data memiliki space kosong sebagai bagian dari data.

Contoh:
kode_warna = 'xxx'
saat masuk ke dalam CHAR(10) maka akan menjadi 'xxx '
nah rugi space kan maka dari itu kita update datanya

UPDATE T_MST_BARANG
KODE_WARNA = TRIM(KODE_WARNA);

Script untuk melihat semua colom yang ada di database:
SELECT TABLE_NAME, CHAR_LENGTH, DATA_TYPE, COLUMN_NAME FROM ALL_TAB_COLUMNS;

Kalau kita ingin membandingkan colom yang memiliki arti sama tapi type datanya berbeda contoh:

SELECT TABLE_NAME, CHAR_LENGTH, DATA_TYPE, COLUMN_NAME FROM ALL_TAB_COLUMNS
where owner = 'DISTRIBUSI'
AND SUBSTR(TABLE_NAME,1,1) = 'T'
AND COLUMN_NAME LIKE '%KETERANGAN%';

Sekian dulu semoga bermanfaat
Terima Kasih.

0 comments:

Post a Comment

sabar ya, komentar anda akan kami moderasi terlebih dahulu. laporkan kepada kami apabila ada post yang masih berbentuk kiri ke kanan. nuhun