【发布时间】:2012-03-30 02:47:51
【问题描述】:
我有一个将 java 映射到 SQL 类型的函数。 由于我要存储二进制数据,是否有任何 SQL 标准定义的类型可以在 PostgreSQL 和 hsqldb 中使用?
【问题讨论】:
标签: sql postgresql hsqldb
我有一个将 java 映射到 SQL 类型的函数。 由于我要存储二进制数据,是否有任何 SQL 标准定义的类型可以在 PostgreSQL 和 hsqldb 中使用?
【问题讨论】:
标签: sql postgresql hsqldb
SQL 92 standard 没有定义二进制类型。 PostgreSQL 有一个bytea 类型,hsqldb 有一个binary 类型。
对于一个非常便携(如果效率不高)的解决方案,请将二进制文件转换为base64,并将其存储在一个字符串中。
【讨论】:
BINARY 和 VARBINARY 由 SQL 标准定义。该标准目前为 SQL:2011(在 92、1999、2003 和 2008 之后)。 HSQLDB 支持标准定义的所有核心数据类型。
PostgreSQL BYTEA 类似于 VARBINARY。您可以将 HSQLDB 中的 BYTEA 类型定义为具有较大最大大小的 VARBINARY 类型:
CREATE TYPE BYTEA AS VARBINARY(1000000)
【讨论】:
SQL 自 1999 年以来就支持二进制类型:[https://mariadb.com/kb/en/sql-data-types/]。供应商已经有十多年的时间来添加对二进制类型的支持,大多数 SQL 数据库都这样做。
【讨论】: