Da (http://www.php .net/manual/en/function.oci-bind-by-name.php#92334 ) :
A volte viene visualizzato l'errore "ORA-01461:può associare un valore LONG solo per l'inserimento in una colonna LONG". Questo errore è altamente fuorviante soprattutto quando non hai colonne LONG o valori LONG.
Dai miei test sembra che questo errore possa essere causato quando il valore di una variabile associata supera la lunghezza allocata.
Per evitare questo errore, assicurati di specificare le lunghezze durante il binding di varchars, ad es.
<?php
oci_bind_by_name($stmt,':string',$string, 256);
?>
E per i numeri usa la lunghezza predefinita (-1) ma dì a Oracle che è un numero intero, ad es.
<?php
oci_bind_by_name($stmt,':num',$num, -1, SQLT_INT);
?>