Posted By: Dzon (Rachot lebek!) on 'CZprogram'
Title: Oracle, OCI8, LONG
Date: Wed Apr 16 11:00:54 2008
cau,
uz tu s tim dva dny boxuju a ani google neporadil. Potrebuju v OCI zjistit
delku aktualne fetchovaneho zaznamu typu LONG [rady typu pouzivej LOB
nepotrebuju, vim ze LOB ma vyrazne vyhody, ale proste je to stara db a s tim
LONGem se neda hnout].
Zkousel jsem napsat kus kodu podle prikladu v cdemol2l.c, ale oni uz tam
pocitaji s tim ze vedi delku tech LONGu. Stejne tak podle dokumentace pri
OCIDefineByPos cituji: At this point you do not need to specify the actual
size of the pieces you will use, but you must provide the total size of the
data that will be fetched at runtime. [mluvim o piecewise fetch]
Kdyz to zkousim ohnout tak pri Execute mi to hodi OCI_NEED_DATA [coz je asi
OK], Get/SetPieceInfo probehne OK, ale nasledny Fetch skonci ORA-24338:
statement handle not executed.
Kdybyste nekdo mel kratky kus kodu v OCI na zjisteni delky LONG hodnoty ve
sloupecku, dost by mi to pichlo.
Co jsem googlil tak bud borec natvrdo pocital s tim ze hodnota nebude delsi
nez 70000 bytu anebo pouzival nejake ulozene procedury pro vypocet delky
popr. konverzi, anebo to pomoci ulozene procedury prekonvertil na CLOB a
nainsertoval do docasne tabulky. Tomu vsemu bych se rad vyhnul :)
-Dzon
## Windows se aktivnim pouzivanim postupne stava nepouzitelnym, ##
## naopak linux se aktivnim pouzivanim postupne stava pouzitelnym. ##