HSQLDB - 如何处理“VARCHAR”类型的存储?

Posted

技术标签:

【中文标题】HSQLDB - 如何处理“VARCHAR”类型的存储?【英文标题】:HSQLDB - How is the "VARCHAR" type storage handled? 【发布时间】:2014-04-18 14:55:02 【问题描述】:

我的问题对你们中的一些人来说一定很愚蠢,但我无法直接在 HSQLDB 网站、谷歌或这里找到答案(我可能错过了一些东西,但我不这么认为,因为那里与其他知名数据库相比,网络上关于 HSQLDB 的内容并不多)。

为了更详细地解释,我的背景是更多的 Oracle DB 背景...我从 HSQLDB 开始,我想知道,因为我们不能使用类型声明,例如:

“mycolumn VARCHAR(25 CHAR)” “mycolumn VARCHAR(25 BYTE)”

如何在 HSQLDB 上管理存储,因为我必须使用“mycolumn VARCHAR(25)”而不是以前的解决方案。如果有人得到关于字符存储方式的良好描述或链接,我会很高兴,以避免例如特殊字符的存储问题。

提前致谢!

安东尼

【问题讨论】:

【参考方案1】:

HSQLDB 使用带有 UTF-16 编码的 Unicode 字符集。因此,所有可能的字符都可以存储在 CHAR、VARCHAR 或 CLOB 列中。 VARCHAR 列的声明大小是指允许的最大 UTF-16 字符数。

VARCHAR 数据在磁盘上的物理存储类似于 UTF-8,每个拉丁字符占用一个字节,但其他字符占用一个字节以上。用户看不到这种编码,其唯一意义是用于长 VARCHAR 数据的磁盘空间量。

【讨论】:

以上是关于HSQLDB - 如何处理“VARCHAR”类型的存储?的主要内容,如果未能解决你的问题,请参考以下文章

jooq:如何处理 POINT MySQL 数据类型

如何处理sql中xml标记之间的前导空格

HSQLDB 和唯一约束

kotlin 不确定如何处理插入方法的返回类型

如何处理错误的数据类型输入

盘点 Seata : Server 端事务的 Session 如何处理?