Tolong bantu saya dengan kesalahan ini, saya menghabiskan berjam-jam untuk ini.

Mungkin masalahnya ada di suatu tempat di bidang yang disorot ( pada gambar ), karena ketika saya menghapusnya, kodenya berfungsi.

Saya memeriksa baik pada nama kolom untuk memastikan tidak ada salah ketik.

enter image description here

Ini adalah desain meja:

enter image description here

Ini adalah teks perintah saya:

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

Terima kasih teman-teman!!

0
Văn Hữu 28 Mei 2021, 17:04

1 menjawab

Jawaban Terbaik

Saya pikir masalahnya adalah Oracle menetapkan alias default untuk setiap kolom di subquery, berdasarkan nilainya. Karena Anda memiliki beberapa kolom dengan nilai yang sama, mereka mendapatkan alias yang sama, dan ini menyebabkan SELECT * menghasilkan kesalahan.

Ini menghasilkan kesalahan yang sama:

with recs as (select 1,2,3,0,0,0 from dual) select * from recs;

Tetapi memberikan alias unik eksplisit untuk kolom yang memiliki nilai yang sama berfungsi:

with recs as (select 1,2,3,0 as a, 0 as b, 0 as c from dual) select * from recs
1
Dave Costa 28 Mei 2021, 14:13