【问题标题】:Not enough values when inserting a row in oracle在 oracle 中插入行时没有足够的值
【发布时间】:2021-01-03 15:08:51
【问题描述】:

我正在尝试通过从另一个表中选择一些数据来插入一行。

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:没有足够的值。 即使我插入了足够的值,我也不知道是什么原因造成的

【问题讨论】:

    标签: oracle sql-insert 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
      );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 2018-08-25
      • 2021-07-16
      • 2019-07-11
      相关资源
      最近更新 更多