【发布时间】:2016-02-18 16:17:23
【问题描述】:
在 Oracle 12c 中,我有一个名为“CONTAINERS”的表,以下查询未能插入数据。
insert into CONTAINERS (ID,CONTAINER_NAME, HIERARCHY_SUB_TYPES_ID, HIERARCHY_TYPES_ID, SEGMENT_ID, SUB_SEGMENT_ID, USERS_ID_HIERARCHY_OWNER)
values (44,'ContainerName', 1, 1, 1, 1, 1);
错误:
命令行错误:1 列:28 错误报告 - SQL 错误: ORA-02000: 缺少 ) 关键字 02000. 00000 - “缺少 %s 关键字”
但这成功了
insert into CONTAINERS values (3,'ContainerName', 1, 1, 1, 1, 1);
我必须将表从“CONTAINERS”重命名为“CONTAINER”,才能正常工作。
谁能解释我为什么会出现这种行为?
DDL:
CREATE TABLE "RELANDHIER"."CONTAINERS"
( "ID" NUMBER,
"CONTAINER_NAME" VARCHAR2(200 BYTE),
"USERS_ID_HIERARCHY_OWNER" NUMBER,
"SEGMENT_ID" NUMBER,
"SUB_SEGMENT_ID" NUMBER,
"HIERARCHY_TYPES_ID" NUMBER,
"HIERARCHY_SUB_TYPES_ID" NUMBER
)
【问题讨论】:
-
你能发布 CREATE TABLE 语句吗
-
第一次插入提到 8 列,而您只有 7 个值。您必须指定 8 个值,默认值在这里不起作用。第二次插入不指定列和作品。该表必须具有在第二次插入中起作用的列之一的默认值。
-
@davegreen100 刚刚做了。
-
@MarcoPolo First insert 有 7 列而不是 8 列。请再次检查语句。
-
不过,我确信这是一个默认值问题。为表格发布“描述”或“创建表格”。