Od (http://www.php .net/manual/en/function.oci-bind-by-name.php#92334 ) :
Czasami pojawia się błąd „ORA-01461:można powiązać wartość LONG tylko w celu wstawienia do kolumny LONG”. Ten błąd jest bardzo mylący, zwłaszcza gdy nie masz kolumn LONG ani wartości LONG.
Z moich testów wynika, że ten błąd może być spowodowany, gdy wartość powiązanej zmiennej przekracza przydzieloną długość.
Aby uniknąć tego błędu, upewnij się, że określasz długości podczas wiązania varcharów, np.
<?php
oci_bind_by_name($stmt,':string',$string, 256);
?>
A w przypadku liczb użyj domyślnej długości (-1), ale powiedz Oracle, że jest to liczba całkowita, np.
<?php
oci_bind_by_name($stmt,':num',$num, -1, SQLT_INT);
?>