Oracle创建表 - >缺少右括号

时间:2013-09-27 15:20:04

标签: sql oracle create-table varbinary

我是编写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)
);

1 个答案:

答案 0 :(得分:3)

VARBINARY不是Oracle数据类型。快速搜索建议MySQL和SQL Server至少拥有它,但不包括Oracle。也许您需要解释您想要存储在该字段中的内容。我认为你最接近的可能是RAW

列出了有效的内置数据类型in the documentation

  

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

This Microsoft article建议你也应该使用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.