cx_Oracle.DatabaseError: ORA-00907: отсутствует правая скобка - PullRequest
0 голосов
/ 29 мая 2018

Следующая строка кода показывает

cx_Oracle.DatabaseError: ORA-00907: missing right parenthesis

cur.execute('''CREATE TABLE address(addressid int PRIMARY KEY AUTO_INCREMENT=1,addressline varchar(10),city varchar(10),zip int,state varchar(10)) ''')

До добавления ограничений код работал без ошибок, но теперь он показывает ошибку.

1 Ответ

0 голосов
/ 29 мая 2018

Это порядок опций, сначала укажите столбец, затем ограничение.

В Oracle 12 используйте:

CREATE TABLE address(addressid INT GENERATED AS IDENTITY PRIMARY KEY,
  addressline VARCHAR(10), city VARCHAR(10), zip int, state varchar(10));

В Oracle 11 и более ранних версиях нет простой замены для AUTO_INCREMENT, вам придется использовать последовательность и триггер:

CREATE TABLE address(addressid INT PRIMARY KEY, 
  addressline VARCHAR(10), city VARCHAR(10), zip int, state varchar(10));

CREATE SEQUENCE addressid_seq;

CREATE OR REPLACE TRIGGER addressid_tbi BEFORE INSERT ON address FOR EACH ROW 
BEGIN :new.addressid := addressid_seq.nextval; END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...