我正在尝试在Netbeans 8.0中创建一个SQL表,其中一列用于存储byte [](因此VARBINARY是我要查找的类型)。用于创建新表的向导为我提供了VARCHAR FOR BIT DATA的选项,它应该可以工作,但在创建表时会引发语法错误:
create table "BANK".Accounts
(
id NUMERIC not null,
pin VARCHAR FOR BIT DATA not null,
primary key(id)
)
错误是由于存在单词FOR,所以我手动更改语句,使其为
create table "BANK".Accounts
(
id NUMERIC not null,
pin "VARCHAR FOR BIT DATA" not null,
primary key(id)
)
但现在的问题是该类型不存在。有什么想法吗?
谢谢。
答案 0 :(得分:1)
这是VARCHAR FOR BIT DATA的手册页:http://db.apache.org/derby/docs/10.10/ref/rrefsqlj32714.html
请注意以下部分:
与CHAR FOR BIT DATA类型的情况不同,VARCHAR FOR BIT DATA类型没有默认长度。长度值的最大大小为32,672字节。
所以问题是你还没有指定长度。
如果你的字节数组是256字节长,你可以指定
pin VARCHAR (256) FOR BIT DATA NOT NULL,
如果符合您的要求,您也可以考虑使用BLOB。您可以在此处查看所有Derby数据类型:http://db.apache.org/derby/docs/10.10/ref/crefsqlj31068.html