【问题标题】:Oracle Database BLOB to InputStream in Java?Oracle 数据库 BLOB 到 Java 中的 InputStream?
【发布时间】:2011-12-24 09:34:35
【问题描述】:

我创建了一个以InputStream 作为输入的Java 函数。我有一个 oracle.sql.BLOB 实例要传递给该函数。如何将其转换为InputStream

我是否需要改用 BLOB 参数重写我的函数?

【问题讨论】:

    标签: java oracle blob inputstream


    【解决方案1】:

    您还没有真正说明如何从数据库中获取数据,但您可以使用ResultSet.getBinaryStream() 获取InputStream,或调用getBlob() 获取Blob,然后使用getBinaryStream()Blob 上获取流。

    【讨论】:

    • 我们用 PL/SQL 来填充,所以这里没什么特别的,这里有一个 PL/SQL 函数调用 java 函数并返回结果
    • @Data-Base:我的意思是您使用的是哪种客户端技术 - 诸如 Hibernate 之类的 ORM、直接 JDBC、哪个驱动程序等。
    • 不知道你是什么意思,但没有!我们只需从 PL/SQL 查询数据库并将变量发送到函数,函数将变量转换数据并返回一个文本 Java 在 Oracle 数据库中编译为类
    • @Data-Base:啊——那是另一回事。遇到在数据库中运行的 Java 代码相对较少……我希望您一开始就这么说,因为我不知道它是如何工作的。基本上在你拥有的任何 API 中寻找与Blob 相关的调用......
    【解决方案2】:

    根据"Mapping Datatypes" documentation 声明oracle.sql.BLOB 类型的Java 参数。然后,您在该 BLOB 对象上调用 getBinaryStream() 以获取您的 InputStream

    【讨论】:

    • 然后呢?如何将其转换为 InputStream?
    猜你喜欢
    • 1970-01-01
    • 2011-08-06
    • 2018-05-20
    • 2021-06-24
    • 2016-02-07
    • 2014-10-02
    • 1970-01-01
    • 2014-11-26
    • 2011-06-21
    相关资源
    最近更新 更多