我可以在这里知道我做错了什么
create or replace procedure load_category(
p_linea_cod varchar2,
p_modal_cod varchar2,
p_periodo_cod varchar2
)IS
BEGIN
insert into category(categoryid,externalcategoryid,name)values(
SEQ_CATEGORY.nextval,
(select cod_modal_est,nombre
from modalidad_estud@ULINK
where cod_linea_negocio = p_linea_cod
and cod_modal_est = p_modal_cod)
);
END;
我正在尝试使用序列和选择语句(工作语句)进行简单的插入,但可以使其工作,只是收到此错误:
ORA-00947: not enough values
我提前感谢您的帮助。
最佳答案
您的选择仅返回一列,而您插入了三列。如果需要将它们保留为空,请将 NULL 值添加到选择中,或将列保留在插入字段列表之外。
[编辑]
修改后的查询:
insert into category(categoryid, externalcategoryid, name)
select
SEQ_CATEGORY.nextval, cod_modal_est, nombre
from
modalidad_estud@ULINK
where
cod_linea_negocio = p_linea_cod
and cod_modal_est = p_modal_cod;
关于来自不同来源的 Oracle 过程插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6336547/