gpt4 book ai didi

java - 如何从 blob 数据类型获取完整的十六进制值?

转载 作者:行者123 更新时间:2023-11-30 07:28:33 25 4
gpt4 key购买 nike

我正在尝试使用查询从 Java 的 BLOB 列获取十六进制值:

SELECT RAWTOHEX(UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(thumbnail, 2000,1))) thumbnail FROM thumbnails  

如果我使用下一个查询:

SELECT LENGTH(thumbnail) FROM thumbnails 

所有缩略图的字节长度都超过6000字节

第一个查询之所以有效,是因为我给了它 2000 字节,因为这是 varchar2 文件类型的大小:

如何修改查询以获取所有缩略图(所有字符)而不仅仅是 2000 个字符?或者另一种从 blob 值获取完整十六进制的方法?

最佳答案

我没有使用 SQL,仅使用 Java 解决了这个问题:查询将正常执行:

String query = "SELECT thumbnail FROM Thumbnails"
ResultSet rs = DBManager.getInstance().execute(query);

并以 Java 中的 Blob 形式获取值:

Blob thumbnail;
if (rs.next()){
thumbnail = rs.getBlob("thumbnail");
byte[] blobBytes = thumbnail.getBytes(1, (int)thumbnail.length());
return Hex.encodeHexString(blobBytes).toUpperCase();
}

非常简单...

关于java - 如何从 blob 数据类型获取完整的十六进制值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36489089/

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