gpt4 book ai didi

database - Clojure 从数据库中读取 Blob

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:36 25 4
gpt4 key购买 nike

我需要从这个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com