0

我是编写 SQL 和使用 Oracle 的新手……所以如果这很明显,我很抱歉,但我无法弄清楚。它告诉我我缺少一个右括号,但据我所知,它们都在那里。VARBINARY 行似乎有问题,但我不知道为什么。

CREATE TABLE DATA_VALUE
(
    DATA_ID         VARCHAR2(40) NOT NULL,
    POSITION        INT NOT NULL,
    VALUE           VARCHAR2(50),
    BINARY_VALUE    VARBINARY(50),
    DATA_TYPE       VARCHAR2(20),

    CONSTRAINT DATA_VALUE_PK PRIMARY KEY(DATA_ID, POSITION)
);
4

1 回答 1

3

VARBINARY不是 Oracle 数据类型。快速搜索表明 MySQL 和 SQL Server 至少有它,但 Oracle 没有。也许你需要解释你想在那个字段中存储什么。我能想到的最接近的意思是RAW.

文档中列出了有效的内置数据类型:

和数据类型存储在不同系统RAW之间LONG RAW移动数据时不被 Oracle 数据库显式转换的数据。这些数据类型适用于二进制数据或字节串。

这篇 Microsoft 文章建议您也应该使用RAW它作为替代品VARBINARY,至少对于您所说的尺寸而言。

CREATE TABLE DATA_VALUE
(
    DATA_ID         VARCHAR2(40) NOT NULL,
    POSITION        INT NOT NULL,
    VALUE           VARCHAR2(50),
    BINARY_VALUE    RAW(50),
    DATA_TYPE       VARCHAR2(20),

    CONSTRAINT DATA_VALUE_PK PRIMARY KEY(DATA_ID, POSITION)
);

table DATA_VALUE created.
于 2013-09-27T15:50:02.040 回答