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

Bagaimana Anda menulis array ke Oracle 10g XE db menggunakan iBatis?

Saya sudah selesai dengan Mybatis3, harus serupa dengan iBatis lama. Untuk mendapatkan barang JDBC, baca utas ini . Ini adalah utas besar, tetapi ada di sana. Cari "ArrayDescriptor".

Pada dasarnya, Anda perlu menulis TypeHandler. Di TypeHandler, panggil setArray. Seharusnya seperti ini di mybatis 3.x. Anda bekerja dengan Daftar, cukup konversi dengan metode toArray. Ini adalah contoh, di mana parameternya adalah String[].

import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;   
.....
public void setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException
{
 //null check?

   ArrayDescriptor desc = ArrayDescriptor.createDescriptor("STRARRAY ", ps.getConnection());
   ARRAY oracleArray = new ARRAY(desc, ps.getConnection(), parameter);
   ps.setArray(i, oracleArray);
}

dan mungkin seperti ini di ibatis,

public void setParameter(ParameterSetter setter, Object parameter) throws SQLException
{
    ArrayDescriptor desc = ArrayDescriptor.createDescriptor("STRARRAY", setter.getPreparedStatement().getConnection());
    ARRAY oracleArray = new ARRAY(desc, setter.getPreparedStatement().getConnection(), parameter);
    setter.setArray(oracleArray);
}

Jadikan Anda telah membangun sebuah tipe, seperti yang tertulis di utas itu.

yaitu

CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (255)

Kemudian di peta SQL, pastikan untuk mereferensikan penangan tipe.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Percepat operasi penyisipan massal dengan NHibernate

  2. org.hibernate.tool.schema.spi.CommandAcceptanceException:Tidak dapat menjalankan perintah

  3. Status klien instan Oracle

  4. Berapa ukuran default input varchar2 ke prosedur tersimpan Oracle, dan dapatkah diubah?

  5. Bagaimana cara menampilkan ukuran skema Oracle dengan kueri SQL?