2014-09-10 3 views
0

Я выполняется следующий запрос в жабе:Ошибка оракул запроса дб в жабе

CREATE TABLE ACTWEB.usuarios 
(
    id    INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), 
    matricula  INTEGER, 
    nome   CHAR(50) NOT NULL, 
    senha   CHAR(50), 
    nivel   INTEGER, 
    maleta   INTEGER, 
    email   CHAR(50), 
    acessos  INTEGER, 
    datacriacao DATE, 
    dataalteracao DATE 
    UNIQUE (id) 
) 

LOGGING 
NOCOMPRESS 
NOCACHE 
NOPARALLEL; 

И получил это ORA сообщение:

ORA-00907 отсутствует правая скобка
Причины: левая скобка был введен без закрывающей правой круглой скобки, или дополнительная информация содержалась в круглых скобках. Все круглые скобки должны вводиться парами.
Действие: Исправьте синтаксис и повторите утверждение.

+2

Что Oracle версии вы используете? – Mureinik

+0

С любым вопросом SQL, это должен быть хороший этикет, чтобы опубликовать версию БД до 4 десятичных знаков. Все, что вам нужно сделать, это «выбрать баннер из версии v $, где rownum = 1'. И лучше всего разместить рабочий тестовый пример, который включает в себя создание операторов, несколько инструкций вставки для выборочных данных и ожидаемого результата. –

ответ

0

В вашем синтаксисе есть пара ошибок. NOT NULL должен произойти после предложения IDENTITY. Диапазон должен быть определен без , и UNIQUE ключевое слово должно появиться в колонке непосредственно:

CREATE TABLE ACTWEB.usuarios 
(
    id    INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) NOT NULL UNIQUE, 
    matricula  INTEGER, 
    nome   CHAR(50) NOT NULL, 
    senha   CHAR(50), 
    nivel   INTEGER, 
    maleta   INTEGER, 
    email   CHAR(50), 
    acessos  INTEGER, 
    datacriacao DATE, 
    dataalteracao DATE 
) 
LOGGING NOCOMPRESS NOCACHE NOPARALLEL; 
0

Вы указанный unique не правильно, чтобы решить эту проблему у вас есть несколько способов:

Во-первых, создать уникальный ключ в явном виде:

create table tab1(
id number(10), 
CONSTRAINT id_uk UNIQUE (id) 
) 

Во-вторых, создать уникальный ключ в качестве опции колонки:

create table tab1(
id number(10) UNIQUE 
) 

В-третьих, добавить уникальный ключ ограничения, используя alter table:

create table tab1(
id number(10) 
); 
alter table tab1 add constraint id_uk unique(id); 

Forth, создать уникальный ключ неявно, создавая уникальный индекс:

create table tab1(
id number(10) 
); 
CREATE UNIQUE INDEX id_uk ON tab1 (id); 
Смежные вопросы