【发布时间】:2016-12-01 15:30:39
【问题描述】:
我正在尝试使用 vert.x 将 BLob 插入 Oracle 数据库,我得到了上传文件
for (FileUpload f : routingContext.fileUploads()){
System.out.println("file name " + f.fileName());
System.out.println("size name " + f.size());
System.out.println("Uploaded File " + f.uploadedFileName());
}
我已使用以下方法将 FileUpload 转换为字节数组:
Buffer fileUploaded = routingContext.vertx().fileSystem().readFileBlocking(f.uploadedFileName());
byte[] fileUploadedBytes = fileUploaded.getBytes();
现在我想将它直接插入 Oracle 数据库,我尝试使用 updateWithParams,但我不知道如何将 Blob 添加到查询参数中。
谢谢你的帮助
【问题讨论】:
-
看看这个question。它解释了如何通过 jdbc 在 oracle db 中插入 Blob
-
感谢@ZeusNet 的回答,但我使用的是
JDBCClient Vertx,所以我必须使用queryWithParams来创建preparedStatement,然后我无法调用setBinaryStream。 -
但是您可能可以将文件的字节包装到 JsonArray 中?我不熟悉 vert.x,但我会尝试一下
-
是的,我尝试过使用它,但我收到此错误
ORA-01461: can bind a LONG value only for insert into a LONG column,顺便说一下我在数据库中有一个 Blob 列 -
你找到使用标准顶点操作保存它的方法了吗?