Отсутствует ошибка в правой круглой скобке при создании таблицы с кодом SQL, созданным в Vertabelo - PullRequest
0 голосов
/ 26 декабря 2018

Я хочу создать базу данных для моего школьного проекта.Некоторые таблицы были созданы без ошибок, но когда я захотел создать более сложную таблицу, у меня была такая ошибка:

ORA-00907: отсутствует правая скобка

код следующий (названия таблицы и атрибуты на румынском языке):

CREATE TABLE Curse (
id_cursa int  NOT NULL,
id_tura int  NULL,
moment_inceput_cursa timestamp  NULL,
moment_sfarsit_cursa timestamp  NULL,
adresa_initiala text  NULL,
GPS_punct_start text  NULL,
adresa_destinatie text  NULL,
destinatie_GPS text  NULL,
stare_cursa char NOT NULL DEFAULT 0,
modalitate_plata int  NULL,
pret decimal  NULL,
CONSTRAINT Curse_pk PRIMARY KEY (id_cursa)
);

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Фактическая ошибка в том, что предложение DEFAULT предшествует предложению NOT NULL.Так что это правильный синтаксис:

stare_cursa char DEFAULT 0 NOT NULL

Помимо этого вам необходимо изменить тип данных text на что-то вроде varchar2(1000) или любую необходимую вам длину.

0 голосов
/ 26 декабря 2018

Несколько возражений:

  • TEXT тип данных недействителен;Я использовал VARCHAR2(100);может быть больше или CLOB
  • правильный порядок DEFAULT 0 NOT NULL (не NOT NULL DEFAULT 0)
  • Хотя это не ошибка , у вас нетуказать, что NULL значения допустимы

SQL> CREATE TABLE curse(
  2    id_cursa               INT NOT NULL,
  3    id_tura                INT NULL,
  4    moment_inceput_cursa   TIMESTAMP NULL,
  5    moment_sfarsit_cursa   TIMESTAMP NULL,
  6    adresa_initiala        VARCHAR2(100)NULL,
  7    gps_punct_start        VARCHAR2(100)NULL,
  8    adresa_destinatie      VARCHAR2(100)NULL,
  9    destinatie_gps         VARCHAR2(100)NULL,
 10    stare_cursa            CHAR DEFAULT 0 NOT NULL,
 11    modalitate_plata       INT NULL,
 12    pret                   DECIMAL,
 13    CONSTRAINT curse_pk PRIMARY KEY(id_cursa)
 14  );

Table created.

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...