Oracle 插入数据报错 ORA-00918

发布时间 2023-12-26 10:10:41作者: 大稳·杨

1. 报错内容

ErrorCode = 918, SQLState = 23000, Details = ORA-00918: column 'TO_DATE('2023-12-1809:13:45','YYYY-MM-DDHH24:MI:SS')' in field list ambiguously defined
 

 2. 原因

sql中的值重复了,导致Oracle未能明确,列跟哪一列进行对应

insert into
table_name(
ID,
col_id,
col_NAME,
col_2_ID,
xx_NAME,
xxx3,
xxx3,
d3,
xx3,
col34,
col98,
CREATE_DATE,
LAST_DATE
)
select
SEQ.nextval,
a.*
from(
select
8,
'v1',
70,
'v3',
'333',
'xxx',
to_date('2023-12-18 09:13:45', 'yyyy-mm-dd hh24:mi:ss'),
'Ddd',
0,
1,
to_date('2023-12-18 09:13:45', 'yyyy-mm-dd hh24:mi:ss'),
to_date('2023-12-18 09:13:45', 'yyyy-mm-dd hh24:mi:ss')
from
dual
) a

3. 解决方案

    值加一个别名

insert into
table_name(
ID,
col_id,
col_NAME,
col_2_ID,
xx_NAME,
xxx3,
xxx3,
d3,
xx3,
col34,
col98,
CREATE_DATE,
LAST_DATE
)
select
SEQ.nextval,
a.*
from(
select
8,
'v1',
70,
'v3',
'333',
'xxx',
to_date('2023-12-18 09:13:45', 'yyyy-mm-dd hh24:mi:ss') as d1,
'Ddd',
0,
1,
to_date('2023-12-18 09:13:45', 'yyyy-mm-dd hh24:mi:ss') as d2,
to_date('2023-12-18 09:13:45', 'yyyy-mm-dd hh24:mi:ss') as d3
from
dual
) a