【问题标题】:Oracle Create Table -> Missing Right ParenthesisOracle 创建表 -> 缺少右括号
【发布时间】:2013-09-27 15:20:04
【问题描述】:

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

【问题讨论】:

    标签: sql oracle create-table varbinary


    【解决方案1】:

    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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-07
      • 2023-04-08
      • 2021-11-10
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      相关资源
      最近更新 更多