To start with I must point out that Delphi 6 uses ADO/OLEDB to connect to the oracle database and I am unsure as to why you have posted your question on a predominately Java site. I therefore answer your question with the
JDBC code that I know works.
A BLOB is basically an array of bytes stored in the database.The java.sql.Blob object wraps a byte pointer known as a LOCATOR in database terms.java.sql.
When a BLOB locator is retrieved from the database, an instance of the java.sql.Blob, or oracle.sql.BLOB, class is used to hold the locator in your Java program. These classes hold the BLOB locator, not the actual data. To get the actual data, you must use one of the Blob, or BLOB, methods to read the data from the database as a stream or to get the data into a byte array.
Note also that the first byte in the array is at position 1
[ September 25, 2002: Message edited by: Nigel Browne ]