Z (http://www.php .net/manual/en/function.oci-bind-by-name.php#92334 ):
Někdy se zobrazí chyba „ORA-01461:lze svázat hodnotu LONG pouze pro vložení do sloupce LONG“. Tato chyba je velmi zavádějící, zejména pokud nemáte žádné LONG sloupce nebo LONG hodnoty.
Z mého testování se zdá, že tato chyba může být způsobena, když hodnota vázané proměnné překročí přidělenou délku.
Chcete-li se této chybě vyhnout, ujistěte se, že při vázání varcharů zadáváte délky, např.
<?php
oci_bind_by_name($stmt,':string',$string, 256);
?>
A pro čísla použijte výchozí délku (-1), ale řekněte Oracle, že je to celé číslo, např.
<?php
oci_bind_by_name($stmt,':num',$num, -1, SQLT_INT);
?>