ORA-01722 при вставке с созданным столбцом идентификаторов - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь создать таблицу с автоматически генерируемым (и автоматически увеличивающимся) столбцом идентификатора. Запрос на создание выполняется нормально, но при попытке вставить запись он всегда завершается с ошибкой

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 или с моей идеей?

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