sql - 如何在H2数据库中将BLOB查询为CLOB

标签 sql h2

要在 Oracle 中将 BLOB 投影到 CLOB,我可以执行以下查询:

SELECT ent.ID, to_clob(ent.blob_string) from entity_1 ent;

但是,我无法在 H2 中找到与 to_clob 等效的操作来在 H2 控制台中查看我的数据。我该怎么做?

最佳答案

这取决于您的 BLOB 的内容。在 H2 控制台中,您实际上可以看到 BLOB 和其他十六进制表示形式的二进制值,它们周围没有任何附加函数。

您可以使用CAST(ent.blob_string AS VARCHAR)(或CAST(ent.blob_string AS CLOB))将二进制字符串显式转换为字符串,但是这种转换在不同版本的 H2 中使用不同的编码。旧版本使用十六进制表示,新版本使用 UTF-8。您可以使用UTF8TOSTRING(ent.blob_string) 函数在新旧版本中进行UTF-8 转换。还有 RAWTOHEX(ent.blob_string) 函数,但其​​行为在不同版本的 H2 及其兼容模式之间也有所不同。

关于sql - 如何在H2数据库中将BLOB查询为CLOB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61817677/

相关文章:

java - 通用查询检查一个表是否存在于所有 RDBMS 中

php - SQL 行输出按时间戳分组

java - 使用 POST 将 SQL 语句传递到 PHP 服务器

java - 将 JPA 实体表数据显示到 thymeleaf View

java - 如何防止使用 H2 进行 JUnit-Test 的日期更改?

h2 以外的数据库的 H2 控制台访问

java - DAO 在数据库中创建记录时崩溃 - Spring Boot

SQL over 子句 - 将分区划分为编号的子分区

sql - 提高 PostgresQL 聚合查询性能

sql - 在完全理解 GROUP BY 时遇到问题