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

JDBC - Oracle ArrayIndexOutOfBoundsException

Di Oracle Metalink (situs dukungan Oracle - Catatan ID 736273.1) saya menemukan bahwa ini adalah bug di adaptor JDBC (versi 10.2.0.0.0 hingga 11.1.0.7.0) bahwa ketika Anda memanggil ReadyStatement dengan lebih dari 7 parameter posisi maka JDBC akan buang kesalahan ini.

Jika Anda memiliki akses ke Oracle Metalink, maka satu opsi adalah pergi ke sana dan mengunduh patch yang disebutkan.

Solusi lainnya adalah solusi - gunakan parameter bernama alih-alih parameter posisi:

INSERT INTO rule_definitions(RULE_DEFINITION_SYS,rule_definition_type, rule_name,rule_text,rule_comment,rule_message,rule_condition,rule_active, rule_type,current_value,last_modified_by,last_modified_dttm, rule_category_sys,recheck_unit,recheck_period,trackable) VALUES(RULE_DEFINITIONS_SEQ.NEXTVAL,:rule_definition_type, :rule_name,:rule_text,:rule_comment,:rule_message,:rule_condition,:rule_active, :rule_type,:current_value,:last_modified_by,:last_modified_dttm, :rule_category_sys,:recheck_unit,:recheck_period,:trackable)

lalu gunakan

preparedStatement.setStringAtName("rule_definition_type", ...)
 

dll. untuk menyetel variabel bind bernama untuk kueri ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - Cara memilih baris yang memiliki kolom dengan nilai maksimal

  2. Bagaimana menemukan sejarah waitevent dari sesi Oracle

  3. NOT IN seleksi dengan nilai NULL

  4. SQL Inner bergabung pada pernyataan tertentu

  5. Putar kembali A jika B salah. boot musim semi, jdbctemplate