Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak zapisywać tablice do bazy danych Oracle 10g XE za pomocą iBatis?

Zrobiłem z Mybatis3, powinien być podobny w starym iBatis. Aby uzyskać materiały JDBC, przeczytaj ten wątek . To ogromny wątek, ale jest. Poszukaj „ArrayDescriptor”.

Zasadniczo musisz napisać TypeHandler. W TypeHandler wywołaj setArray. Powinno być coś takiego w mybatis 3.x. Pracujesz z Listą, po prostu przekonwertuj za pomocą metody toArray. To jest przykład, w którym parametrem jest 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);
}

a może coś takiego w 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);
}

Spraw, aby Twój typ został zbudowany, tak jak jest napisane w tym wątku.

tj.

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

Następnie na mapie SQL upewnij się, że odwołujesz się do obsługi typu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak odzyskać lub zmienić hasło Oracle sysdba

  2. Oracle pobierz wiersz, w którym zmieniła się wartość kolumny

  3. Jak można wielokrotnie uruchomić to samo zapytanie przy użyciu pętli w PL/SQL?

  4. Film:Wydajność kolumny Oracle 12c IDENTITY w systemie RAC

  5. Nieprawidłowa nazwa wspólnego użytkownika lub roli