[Java lista] Oracle ARRAY + JDBC

Gábor Lipták gabor.liptak at gmail.com
2009. Dec. 16., Sze, 12:27:01 CET


Konkrétan az oracle nem különbözteti meg (értsd nem tudja) az üres stringet
és a nullt. Ez lehet a baj forrása. Nézz utána a neten.

2009/12/16 Godán Tamás <gtom at freemail.hu>

>
> 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
>
>
>
> ________________________________________________________
> 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
>
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20091216/b8d78ebf/attachment.html 


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