Von (http://www.php .net/manual/en/function.oci-bind-by-name.php#92334 ) :
Manchmal erhalten Sie den Fehler "ORA-01461:can bind a LONG value only for insert into a LONG column". Dieser Fehler ist sehr irreführend, besonders wenn Sie keine LONG-Spalten oder LONG-Werte haben.
Aus meinen Tests geht hervor, dass dieser Fehler verursacht werden kann, wenn der Wert einer gebundenen Variablen die zugewiesene Länge überschreitet.
Um diesen Fehler zu vermeiden, stellen Sie sicher, dass Sie beim Binden von Varchars Längen angeben, z.
<?php
oci_bind_by_name($stmt,':string',$string, 256);
?>
Und für Zahlen verwenden Sie die Standardlänge (-1), aber teilen Sie Oracle mit, dass es sich um eine Ganzzahl handelt, z.
<?php
oci_bind_by_name($stmt,':num',$num, -1, SQLT_INT);
?>