[Java lista] Oracle ARRAY + JDBC

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


Szia,

Természetesen át tudok adni üres stringet tartalmazó 1 elemű tömböt, sőt még teljesen üres tömböt is. 
De a projekt során megírt sok-sok kóddal való kompatibilitás megtartása érdekében konkrétan NULL-t kellene átadnom abba a  bemenő paraméterbe. Nem hiszem el hogy minden adattípusra megy a setNull() csak array-re nem, biztos csak én bénázok valamit.


üdv,
  Tamás



CoL <col at gear.hu> írta:
>Szia,
>
>próbálj meg egy űres string-et tartalamzó tömböt átadni.
>
>C.
>
>Godán Tamás wrote:
>> 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:
>>
>> 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
>>
>>
>>
>> ________________________________________________________
>> 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 
>> <http://ad.adverticum.net/b/cl,1,6022,370758,458130/click.prm>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at javagrund.hu
>> http://javagrund.hu/mailman/listinfo/javalist
>>   
>_______________________________________________
>Javalist mailing list
>Javalist at javagrund.hu
>http://javagrund.hu/mailman/listinfo/javalist


<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/8328e36e/attachment.html 


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