Недостаточно значений при вставке строки в оракул

Я пытаюсь вставить строку, выбрав некоторые данные из другой таблицы.

      insert into spb (id_barang,nama_barang,qty,lokasi_tujuan,lokasi_asal,waktu)
values
((select stg.id_barang,stg.nama_barang,calculate_req_stok(display.max_stok,display.stok,display.pcs_in_ctn,display.id_barang),display.lokasi,stg.lokasi
from display
inner join stg
on display.nama_barang = stg.nama_barang
where stg.stok >= calculate_req_stok(display.max_stok,display.stok,display.pcs_in_ctn,display.id_barang) * display.pcs_in_ctn),current_time_ms);

Он показывает эту ошибку: ORA-00947: недостаточно значений. Я не знаю, что вызывает это, хотя я вставил достаточно значений

1 ответ

Неправильный синтаксис; удалять valuesи переместите последнее значение для вставки ( current_time_ms) в selectсписок столбцов:

      INSERT INTO spb(
  id_barang,
  nama_barang,
  qty,
  lokasi_tujuan,
  lokasi_asal,
  waktu
)
  (SELECT stg.id_barang,
          stg.nama_barang,
          calculate_req_stok(
            display.max_stok,display.stok,
            display.pcs_in_ctn,
            display.id_barang
          ),
          display.lokasi,
          stg.lokasi,
          current_time_ms
  FROM display
  INNER JOIN stg ON display.nama_barang = stg.nama_barang
  WHERE stg.stok >= 
    calculate_req_stok
     (display.max_stok,display.stok,
      display.pcs_in_ctn,
      display.id_barang
     ) * display.pcs_in_ctn
  );
Другие вопросы по тегам