Från (http://www.php .net/manual/en/function.oci-bind-by-name.php#92334 ) :
Ibland får du felet "ORA-01461:kan binda ett LONG-värde endast för att infogas i en LONG-kolumn". Det här felet är mycket missvisande, särskilt när du inte har några LONG-kolumner eller LONG-värden.
Från mina tester verkar det som om detta fel kan orsakas när värdet på en bunden variabel överskrider den tilldelade längden.
För att undvika detta fel, se till att du anger längder när du binder varchar, t.ex.
<?php
oci_bind_by_name($stmt,':string',$string, 256);
?>
Och för siffror använd standardlängden (-1) men säg till oracle att det är ett heltal t.ex.
<?php
oci_bind_by_name($stmt,':num',$num, -1, SQLT_INT);
?>