ORA-00918: 列定义不明确 - INSERT INTO table
ORA-00918: column ambiguously defined - INSERT INTO table
请帮我解决这个错误,我为此花了好几个小时。
也许问题出在那些突出显示的字段(在图像上),因为当我删除
它,代码有效。
我检查列名是否正确,以确保没有输入错误。
这是table设计:
这是我的命令文本:
INSERT INTO PRODUCTS(
idz,category_id,brand_id,
namez,
computed_name,
unit_price,discount,
url_key,
short_description,
rate_avg,
rate_total,
rate_avg_recent,
rate_total_recent,
rate_total_counting,
rate_avg_counting,
views,
views_recent,
views_counting,
purchases,
purchases_recent,
purchases_counting,
search_recent,
search_counting
)
WITH recs AS (
SELECT 52333193, 1811, 111461,
'Tai nghe bluetooth không dây F9 True wireless Dock Sạc có Led Báo Pin Kép',
'Tai nghe bluetooth không dây F9 True wireless Dock Sạc có Led Báo Pin Kép',
169000,581000,
'tai-nghe-bluetooth-khong-day-f9-true-wireless-cam-ung-van-tay-dock-sac-co-led-bao-pin-kep-p52333193/52333193',
'\n \n\n\n\n\n\n \nSử dụng Chip Bluetooth 5.0 mạnh mẽ',
0,0,0,0,0,0,0,0,0,0,0,0,0,0 -- I think the problem is here, It work when I remove this line (and
-- columns defined above )
FROM dual
)
SELECT * FROM recs
谢谢大家!!
我认为问题在于 Oracle 根据其值为子查询中的每一列设置了默认别名。由于您有多个具有相同值的列,它们会得到相同的别名,这会导致 SELECT *
生成错误。
这会产生同样的错误:
with recs as (select 1,2,3,0,0,0 from dual) select * from recs;
但是为具有相同值的列提供明确的唯一别名是可行的:
with recs as (select 1,2,3,0 as a, 0 as b, 0 as c from dual) select * from recs
请帮我解决这个错误,我为此花了好几个小时。
也许问题出在那些突出显示的字段(在图像上),因为当我删除 它,代码有效。
我检查列名是否正确,以确保没有输入错误。
这是table设计:
这是我的命令文本:
INSERT INTO PRODUCTS(
idz,category_id,brand_id,
namez,
computed_name,
unit_price,discount,
url_key,
short_description,
rate_avg,
rate_total,
rate_avg_recent,
rate_total_recent,
rate_total_counting,
rate_avg_counting,
views,
views_recent,
views_counting,
purchases,
purchases_recent,
purchases_counting,
search_recent,
search_counting
)
WITH recs AS (
SELECT 52333193, 1811, 111461,
'Tai nghe bluetooth không dây F9 True wireless Dock Sạc có Led Báo Pin Kép',
'Tai nghe bluetooth không dây F9 True wireless Dock Sạc có Led Báo Pin Kép',
169000,581000,
'tai-nghe-bluetooth-khong-day-f9-true-wireless-cam-ung-van-tay-dock-sac-co-led-bao-pin-kep-p52333193/52333193',
'\n \n\n\n\n\n\n \nSử dụng Chip Bluetooth 5.0 mạnh mẽ',
0,0,0,0,0,0,0,0,0,0,0,0,0,0 -- I think the problem is here, It work when I remove this line (and
-- columns defined above )
FROM dual
)
SELECT * FROM recs
谢谢大家!!
我认为问题在于 Oracle 根据其值为子查询中的每一列设置了默认别名。由于您有多个具有相同值的列,它们会得到相同的别名,这会导致 SELECT *
生成错误。
这会产生同样的错误:
with recs as (select 1,2,3,0,0,0 from dual) select * from recs;
但是为具有相同值的列提供明确的唯一别名是可行的:
with recs as (select 1,2,3,0 as a, 0 as b, 0 as c from dual) select * from recs