我正在尝试创建具有自动生成(且自动递增)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或我的思路根本上有问题?