sql >> Base de Datos >  >> RDS >> Oracle

PHP:oci_bind_by_name y el campo de marca de tiempo dan como resultado ORA-01461:puede vincular un valor LARGO solo para insertarlo en una columna LARGA

Desde (http://www.php .net/manual/en/function.oci-bind-by-name.php#92334 ) :

A veces aparece el error "ORA-01461:puede vincular un valor LARGO solo para insertarlo en una columna LARGA". Este error es muy engañoso, especialmente cuando no tiene columnas LARGAS o valores LARGO.

Según mis pruebas, parece que este error puede deberse a que el valor de una variable vinculada supera la longitud asignada.

Para evitar este error, asegúrese de especificar longitudes al vincular varchars, p.

<?php
    oci_bind_by_name($stmt,':string',$string, 256);
?>

Y para valores numéricos, use la longitud predeterminada (-1) pero dígale a Oracle que es un número entero, p.

<?php
    oci_bind_by_name($stmt,':num',$num, -1, SQLT_INT);
?>