2013-09-27 3 views
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) 
); 

답변

3

VARBINARY은 Oracle 데이터 유형이 아닙니다. 빠른 검색은 MySQL과 SQL Server가 적어도 Oracle은 아니라는 것을 의미합니다. 아마도 당신은 당신이 그 분야에 저장할 것을 설명 할 필요가있을 것입니다. 내가 생각하기에 가장 가까운 것은 RAW입니다.

유효한 내장 데이터 유형은 in the documentation 나열되어 있습니다 :

서로 다른 시스템간에 데이터를 이동할 때 명시 적으로 오라클 데이터베이스에 의해 변환 수 없습니다입니다 RAWLONG RAW 데이터 유형의 데이터를 저장합니다. 이러한 데이터 형식은 이진 데이터 또는 바이트 문자열을 대상으로합니다.

This Microsoft article은 적어도 당신이 무슨 말 크기에 맞게, 너무 VARBINARY을 대체 RAW를 사용한다 제안한다.

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.