ORA-01722使用生成的身份列进行插入时

时间:2019-04-21 18:23:12

标签: sql oracle oracle12c ddl dml

我正在尝试创建具有自动生成(且自动递增)id列的表。创建查询运行良好,但是尝试插入记录时,它总是失败并显示

  

ORA-01722:无效的号码。

服务器正在运行Oracle Database 12c企业版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);

我希望服务器在插入时生成ID。我看不到明显的东西,还是DDL或我的思路根本上有问题?

0 个答案:

没有答案