ORA-01747: invalid user.table.column, table.column, or column specification

Aneh bin ajaib, banyak cara dan berbagai cara telah dilakukan dan memasukkan data tabel ke kolom yang satu ini tidak bisa-bisa. Padahal kolomnya hanya tiga saja dan mencoba memasukkan data lewat sql developernya oracle tidak masalah. Sudah mengecek trigger dan sequence autoincrement tabel, siapa tahu belum dimasukkan dan tidak bermasalah.

Mencoba menghapus dan mendrop tabel, tidak bisa jadi juga, resourcenya lagi dipakai, najislah. Mencoba membuat tabel baru yang serupa dan sama biar fresh dan bersih, dicoba dengan membuat yang paling sederhana, tetap saja hasilnya dengan nihil. Mencoba hasilnya dengan memasukkan data lewat kodingan sederhana, tetap saja hasilnya yang palin keren yaitu error ORA-01747: invalid user.table.column, table.column, or column specification. Terjadilah pending works dan mau tak mau harus dicari penyebabnya dan dituntaskan secara kodingan.

Setelah beberapa saat dan ngantuk-ngantuk dan tiba-tiba ada pencerahan, ketikkan ORA-01747 di om Google dan baca reference-reference yang Google sarankan, dan salah satunya http://www.techonthenet.com/oracle/errors/ora01747.php, ternyata benarlah sudah bahwa penyebabnya “You tried to reference a column name, but the column name used is a reserved word in Oracle.” Hhhmm di kolom tabel yang dibuat ada kolom dengan nama DESC yang menyatakan description. Pantasanlah!!! Di oracle DESC digunakan sebagai kata kunci untuk ordering dari yang besar ke yang kecil (Z-A) yang lawannya ASC (A-Z).

Ini mengajarkan untuk memperhatikan nama tabel dan kolom-kolom yang dibuat tidak sampai menggunakan kata-kata kunci yang ada di system, dalam hal ini kata kunci yang dimiliki database Oracle. Untuk hal-hal yang lain mungkin juga berguna. :D

A simple thing that make headache. Happy coding!!!