[Java lista] Oracle ARRAY + JDBC

Godán Tamás gtom at freemail.hu
2009. Dec. 16., Sze, 12:00:49 CET


Sziasztok!

Bea Weblogic 8.1-ben futó alkalmazásban szeretnék Oracle PL/SQL függvénynek tömb típusú paramétert átadni. Működik is szépen, egyetlen bajom hogy NULL értéket sehogyan sem tudok átadni a bemenő paraméternek.

DBkód:

   Normal  0      21      false  false  false    HU  X-NONE  X-NONE                                       MicrosoftInternetExplorer4                                                                                                                                                                                                                                                                                                                         create or replace type ARRAY_CHAR100 as table of varchar2(100);

function collect(
  I_TransStatusList                        IN ARRAY_CHAR100,
) return number is
...


Java kód:

java.util.List lista = ...;  // Stringekből álló List
Connection oraConn =  ((weblogic.jdbc.wrapper.JTAConnection) connection).getVendorConnection();
ArrayDescriptor arrayDescriptor = ArrayDescriptor.createDescriptor("ARRAY_CHAR100", oraConn);
ARRAY paramArray = new ARRAY(arrayDescriptor, oraConn, lista.toArray());
statement.setArray(parameterIndex, paramArray);


Namármost, 3 féle képpen próbáltam a lista == NULL érték esetet lekezelni, 3 féle különböző hibát kaptam:

1. statement.setNull(parameterIndex, Types.ARRAY, "ARRAY_CHAR100");   (ez az aminek szerintem működnie kellene!)
    Ez esetben a statement execute hívásakor száll el  java.sql.SQLException: ORA-06531: Reference to uninitialized collection hibával.

2. A lista.toArray() helyett NULL átadása az ARRAY() konstruktor hívásakor
    Ez esetben a statement execute hívása ezt adja: java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error

3. statement.setArray() hívásban egyszerűen NULL-t adok át a paramArray helyett
    Ekkor java.sql.SQLException: Invalid argument(s) in call


Van valakinek tapasztalata/ötlete ezzel kapcsolatban?


üdv,
  Tamás



<br><br>________________________________________________________<br><a href="http://ad.adverticum.net/b/cl,1,6022,370758,458130/click.prm">
Most 10 000 Ft-ért beszámítjuk régi mobilod, ha újat veszel számlás előfizetéssel! Részletek: www.pannon.hu
</a>

--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20091216/a45aa91c/attachment-0001.html 


További információk a(z) Javalist levelezőlistáról