2013-09-27 71 views
0

我是新手,編寫SQL和使用Oracle ...所以我很抱歉,如果這是顯而易見的,但我不明白。這是告訴我,我錯過了一個右括號,但據我所知他們都在那裏。這似乎是與VARBINARY線問題,但我不知道爲什麼。Oracle創建表 - >缺少右括號

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) 
); 

回答

3

VARBINARY不是Oracle數據類型。快速搜索建議MySQL和SQL Server至少有,但不是Oracle。也許你需要解釋你想在這個領域存儲什麼。我認爲你可能意思最接近的是RAW

有效內置的數據類型列in the documentation

RAWLONG RAW數據類型存儲數據不是要由 Oracle數據庫 不同的系統之間移動數據時,顯式轉換。這些數據類型適用於二進制數據或 字節字符串。

This Microsoft article建議你應該使用RAWVARBINARY更換過,至少你在談論的大小。

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.