De (http://www.php .net/manual/en/function.oci-bind-by-name.php#92334 ):
Às vezes, você recebe o erro "ORA-01461:pode vincular um valor LONG apenas para inserir em uma coluna LONG". Esse erro é altamente enganoso, especialmente quando você não tem colunas LONG ou valores LONG.
Dos meus testes, parece que esse erro pode ser causado quando o valor de uma variável vinculada excede o comprimento alocado.
Para evitar esse erro, certifique-se de especificar comprimentos ao vincular varchars, por exemplo.
<?php
oci_bind_by_name($stmt,':string',$string, 256);
?>
E para numéricos, use o comprimento padrão (-1), mas diga ao oracle que é um número inteiro, por exemplo
<?php
oci_bind_by_name($stmt,':num',$num, -1, SQLT_INT);
?>