Dari (http://www.php .net/manual/en/function.oci-bind-by-name.php#92334 ) :
Terkadang Anda mendapatkan kesalahan "ORA-01461:dapat mengikat nilai PANJANG hanya untuk dimasukkan ke dalam kolom PANJANG". Kesalahan ini sangat menyesatkan terutama bila Anda tidak memiliki kolom LONG atau nilai LONG.
Dari pengujian saya, tampaknya kesalahan ini dapat terjadi ketika nilai variabel terikat melebihi panjang yang dialokasikan.
Untuk menghindari kesalahan ini, pastikan Anda menentukan panjang saat mengikat varchars mis.
<?php
oci_bind_by_name($stmt,':string',$string, 256);
?>
Dan untuk numerik gunakan panjang default (-1) tetapi beri tahu Oracle bahwa itu adalah bilangan bulat mis.
<?php
oci_bind_by_name($stmt,':num',$num, -1, SQLT_INT);
?>