Oracle
 sql >> база данни >  >> RDS >> Oracle

Как записвате масиви в Oracle 10g XE db с помощта на iBatis?

Направих с Mybatis3, трябва да е подобно в старите неща на iBatis. За да получите JDBC неща, прочетете тази тема . Нишката е огромна, но я има. Потърсете "ArrayDescriptor".

По принцип трябва да напишете TypeHandler. В TypeHandler извикайте setArray. Трябва да има нещо подобно в mybatis 3.x. Работите със списък, просто конвертирайте с метода toArray. Това е пример, където параметърът е 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);
}

и може би нещо подобно в 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);
}

Уверете се, че сте изградили тип, както пише в онази тема.

т.е.

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

След това в SQL картата не забравяйте да посочите манипулатора на типа.




  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 Pivot дава колони с кавички около имената на колоните. Какво?

  2. jetty и Oracle Connection Pooling

  3. Как да копирам данните от Excel в Oracle?

  4. Труден проблем ГРУПИРАНЕ ПО на ORACLE

  5. Oracle 12c ИДЕНТИФИЦИРАН ОТ СТОЙНОСТ