Marco,

Traced down a reproducible on the 9i LOB issue and found that we were doing some very bad things and perhaps unnecessary things. Here is the situation. For stored procedures we create TLobLocator for each LOB parameter. If the parameter is not null or empty the Locator is passed into dbms_lob.createtemporay() to get a temp session lob. If it is empty(but not null), TLobLocator.SetEmpty is called. The LobLocators are then passed into the StoredProc/Function via SetComplexVariable and the Execute is called. After the returned data is extracted, any tempLobs are freed via dbms_lob.freetemporay() and then all the LobLocators are freed. However, looking at DOA it seems SetEmpty (re)creates through OCI calls and my calls to dbms_lob are unnecessary. Is this correct?

--Greg