[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