首页 > 解决方案 > 用于返回字节数组的 Java 程序的 Oracle PL/SQL 包装函数

问题描述

我有一个 Java 程序,它从 SFTP 读取文件并返回一个字节数组 - 最大文件大小为 2MB。我想为此方法编写一个 Oracle 包装器 SQL 函数。

CREATE OR REPLACE FUNCTION SFTPDownloadFile(host varchar2, account varchar2, fileName varchar2) return BLOB is 
LANGUAGE JAVA NAME 'FileAttachment.downloadFile(java.lang.String, java.lang.String, java.lang.String) return byte[]';
/

另一个 PL/SQL 过程调用SFTPDownloadFile()并将其返回数据插入到具有 BLOB 列的表中。

我在调用SFTPDownloadFile()并分配给 BLOB 变量的行上报告了一个错误。

不一致的数据类型:期望一个可转换为 Oracle BLOB 的返回值得到一个 Java 字节数组

如何在 Oracle 中将此字节数组作为 BLOB 对象?

标签: javaoracle

解决方案


推荐阅读