在 oracle 中插入行时没有足够的值
Posted
技术标签:
【中文标题】在 oracle 中插入行时没有足够的值【英文标题】:Not enough values when inserting a row in 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:没有足够的值。 即使我插入了足够的值,我也不知道是什么原因造成的
【问题讨论】:
【参考方案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
);
【讨论】:
以上是关于在 oracle 中插入行时没有足够的值的主要内容,如果未能解决你的问题,请参考以下文章
向Oracle数据库插入数据时提示 ora-00947: 没有足够的值
向oracle数据库中添加数据时提示ORA-00947: 没有足够的值
Oracle 选择变量,错误 ORA-00947 没有足够的值
oracle创建存储过程时,提示错误是:错误(5,18): PL/SQL: ORA-00947: 没有足够的值?代码如下: