我有一个将java映射到SQL类型的函数。 由于我想存储二进制数据,我是否可以在PostgreSQL和hsqldb中使用SQL标准定义的任何类型?
答案 0 :(得分:8)
SQL 92 standard未定义二进制类型。 PostgreSQL有bytea
类型,hsqldb有binary
类型。
对于非常便携(如果效率不高)的解决方案,请将二进制文件转换为base64,并将其存储在字符串中。
答案 1 :(得分:7)
BINARY和VARBINARY由SQL标准定义。该标准目前在SQL:2011(92,1999,2003和2008之后)。 HSQLDB支持标准定义的所有核心数据类型。
PostgreSQL BYTEA与VARBINARY类似。您可以将HSQLDB中的BYTEA类型定义为具有较大最大大小的VARBINARY类型:
CREATE TYPE BYTEA AS VARBINARY(1000000)
答案 2 :(得分:1)
自1999年以来,SQL一直支持二进制类型:[https://mariadb.com/kb/en/sql-data-types/]。供应商已经有十多年的时间来增加对二进制类型的支持,而且大多数SQL数据库都支持。