Я пытаюсь создать таблицу с автоматически генерируемым (и автоматически увеличивающимся) столбцом идентификатора. Запрос на создание выполняется нормально, но при попытке вставить запись он всегда завершается с ошибкой
ORA-01722: неверный номер.
Сервер работает под управлением Oracle Database 12c Enterprise Edition версии 12.1.0.2.0. Когда я удаляю таблицу и создаю ее без столбца идентификаторов, INSERT работает просто отлично. Немного поработав с другими столбцами, я сузил проблему до этого конкретного столбца.
DDL:
CREATE TABLE role
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
name VARCHAR2(16) NOT NULL,
access_level NUMBER NOT NULL,
created DATE NOT NULL,
updated DATE NOT NULL,
active NUMBER NOT NULL
);
ALTER TABLE role
ADD CONSTRAINT role_pk PRIMARY KEY (id);
ВСТАВИТЬ ЗАПРОС:
INSERT INTO ROLE(NAME, ACCESS_LEVEL, CREATED, UPDATED, ACTIVE)
VALUES ('Test', 999, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1);
Я ожидаю, что сервер сгенерирует идентификатор при вставке. Разве я не вижу чего-то очевидного или что-то в корне неверно с DDL или с моей идеей?