Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

PHP:oci_bind_by_name dan bidang stempel waktu menghasilkan ORA-01461:dapat mengikat nilai PANJANG hanya untuk dimasukkan ke dalam kolom PANJANG

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

Terkadang Anda mendapatkan kesalahan "ORA-01461:dapat mengikat nilai PANJANG hanya untuk dimasukkan ke dalam kolom PANJANG". Kesalahan ini sangat menyesatkan terutama bila Anda tidak memiliki kolom LONG atau nilai LONG.

Dari pengujian saya, tampaknya kesalahan ini dapat terjadi ketika nilai variabel terikat melebihi panjang yang dialokasikan.

Untuk menghindari kesalahan ini, pastikan Anda menentukan panjang saat mengikat varchars mis.

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

Dan untuk numerik gunakan panjang default (-1) tetapi beri tahu Oracle bahwa itu adalah bilangan bulat mis.

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Run Procedure dengan satu parameter masuk dan beberapa parameter keluar

  2. ORA-30926:tidak bisa mendapatkan set baris yang stabil di tabel sumber

  3. Cara mengetahui ukuran pengambilan optimal untuk kueri pemilihan

  4. Oracle Data Mining (ODM) – Instalasi &Pengaturan

  5. Apakah zona waktu java.sql.Timestamp spesifik?