database - Clojure 从数据库中读取 Blob

标签 database clojure blob

我需要从这个 Blob 中读取字节。我正在尝试以下操作,但出现此异常: oracle.sql.BLOB 无法转换为 [B

(defn select-test2[]
  (clojure.contrib.sql/with-connection db
    (with-query-results res ["SELECT my_blob from some_table"] (doall res))))

(defn obj [byte-buffer]
  (if-not (nil? byte-buffer)
    (with-open [object-in (ObjectInputStream.
                            (ByteArrayInputStream. byte-buffer))]
      (.readObject object-in))))

(obj (:my_blob (first (select-test2))))

最佳答案

[B 是字节数组的“类”:

user=> (type (byte-array 0))
[B

所以您的代码中有一个地方需要一个字节数组,但它被赋予了一个 oracle.sql.Blob 实例。我敢打赌 :my_blob 会给你一个 Blob;当您将 byte-buffer(即 Blob)传递给 ByteArrayInputStream 构造函数时,您会得到异常。

查找 oracle.sql.Blob 的 javadoc,了解如何从中提取字节数组或输入流。

关于database - Clojure 从数据库中读取 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3630311/

相关文章:

blob - 二进制文件和 BLOB 之间的区别

java - Access 使用 MS Access 创建的 Oracle10g 数据库中的 BLOBS

mysql - 我应该为双角色用户维护一两个唯一 ID 吗?

sql-server - SQL : How to Store Integer value in CASE function in sql?

clojure - 如何修复错误 "Deleting non-target project paths ["test-app/renderer/renderer.js%s"] is not allowed."when clean my project?

clojure - 我可以在Clojure记录中创建可变状态吗?

javascript - 如何区分 blob 和 String?

php - 如何设计布局可能随时间变化的通用数据库?

php - USE | 之间有什么区别? select_db 函数或 TABLE NAME.dbo?

map - Clojure 宏中关键字的奇怪行为