Oracle Database BLOB to InputStream in Java?

2019-01-20 02:56发布

问题:

I made a Java function that takes an InputStream as an input. I have a oracle.sql.BLOB instance to pass to that function. How can I convert it to a InputStream?

Do I need to re-write my function using a BLOB parameter, instead?

回答1:

Declare your Java parameter of type oracle.sql.BLOB as per the "Mapping Datatypes" documentation. Then, you call getBinaryStream() on that BLOB object to obtain your InputStream.



回答2:

You haven't really said how you're fetching data from the database, but you can use ResultSet.getBinaryStream() to get an InputStream, or call getBlob() to get a Blob, and then getBinaryStream() on the Blob to get a stream.