Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Потерялась скобка. Oracle

414
06 января 2013 года
CassandraDied
763 / / 24.05.2012
Код:
CREATE TABLE products(
    prCode NUMBER(5) UNIQUE NOT NULL DEFAULT 0,
    title VARCHAR2(50) NOT NULL DEFAULT 'we don\'t like empty strings',
    grpCode NUMBER(5) NOT NULL DEFAULT 0,
    prihodCost NUMBER(5) NOT NULL DEFAULT 0,
    roznCost NUMBER(5) NOT NULL DEFAULT 0,
    prCnt NUMBER(5) NOT NULL DEFAULT 0);

CREATE TABLE product_groups(
    grpCode NUMBER(5) UNIQUE NOT NULL DEFAULT 0,
    grpType VARCHAR2(50) NOT NULL DEFAULT 'empty strings is NULL',
    prCnt NUMBER(50) NOT NULL DEFAULT 0,
    svodRoznCost FLOAT NOT NULL DEFAULT 0.0,
    nacenka FLOAT DEFAULT 0);
Цитата:

1 0.00 CREATE TABLE products( prCode number(5) UNIQUE NOT NULL ORA-00907: missing right parenthesis -
2 0.00 CREATE TABLE product_groups( grpCode number(5) UNIQUE NO ORA-00907: missing right parenthesis -


Ну где же они потерялись? Полчаса уже не могу найти.

277
07 января 2013 года
arrjj
1.7K / / 26.01.2011
а разве кавычка так экранируется в sql? вроде просто 'we don''t like empty strings'
414
07 января 2013 года
CassandraDied
763 / / 24.05.2012
Вроде бы оба варианта работают. По крайней мере подсветка синтаксиса не говорит о том, что кавычка не экранируется. Ну и без этой строки тоже не работает.
414
07 января 2013 года
CassandraDied
763 / / 24.05.2012
А вот так уже работает:

 
Код:
CREATE TABLE prdafsfsdfdfssssd(prCnt NUMBER(5) UNIQUE NOT NULL);
Получается, дело в DEFAULT.
414
07 января 2013 года
CassandraDied
763 / / 24.05.2012
А так заработало:

 
Код:
prCnt NUMBER(5) DEFAULT 0 NOT NULL UNIQUE);
Шайтан. :)
UPD: как оказалось, экранирование через \ тоже вызывает ошибку, так что его нужно заменить на ''.
327
07 января 2013 года
UserNet2008
748 / / 03.04.2010
А так
UNIQUE NOT NULL DEFAULT
414
07 января 2013 года
CassandraDied
763 / / 24.05.2012
Цитата: UserNet2008
А так
UNIQUE NOT NULL DEFAULT


Так тоже работать не будет.

327
07 января 2013 года
UserNet2008
748 / / 03.04.2010
 
Код:
UNIQUE может состоять более чем из одного столбца:

CREATE TABLE uniquetest2 (
  col1 INTEGER,  col2 INTEGER,
  UNIQUE (col1, col2) );
Обратите внимание на скобки
414
07 января 2013 года
CassandraDied
763 / / 24.05.2012
Цитата: UserNet2008
 
Код:
UNIQUE может состоять более чем из одного столбца:

CREATE TABLE uniquetest2 (
  col1 INTEGER,  col2 INTEGER,
  UNIQUE (col1, col2) );
Обратите внимание на скобки


Не обращу. :) Это другой пример. У меня уникальность атрибута устанавливается в каждой строке отдельно.

414
07 января 2013 года
CassandraDied
763 / / 24.05.2012
Всё уже заработало. Вот правильный вариант. Или один из.

Код:
CREATE TABLE products(
    prCode NUMBER(5) DEFAULT 0 NOT NULL UNIQUE,
    title VARCHAR2(50) DEFAULT 'we don''t like empty strings' NOT NULL,
    grpCode NUMBER(5) DEFAULT 0 NOT NULL,
    prihodCost FLOAT DEFAULT 0 NOT NULL,
    roznCost FLOAT DEFAULT 0 NOT NULL,
    prCnt NUMBER(5) DEFAULT 0 NOT NULL);

CREATE TABLE products_groups(
    grpCode NUMBER(5) DEFAULT 0 NOT NULL UNIQUE,
    grpType VARCHAR2(50) DEFAULT 'empty strings is NULL' NOT NULL,
    prCnt NUMBER(10) DEFAULT 0 NOT NULL,
    svodRoznCost FLOAT DEFAULT 0 NOT NULL,
    nacenka FLOAT DEFAULT 0 NOT NULL);
88K
08 января 2013 года
sndr
1 / / 08.01.2013
О, спасибо.. та же проблема была, кучу времени убил!

___________________
сочинение о книге
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог