从不同来源插入Oracle过程

时间:2011-06-13 21:24:04

标签: oracle stored-procedures insert

我可以得到我在这里做错了什么

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;

我正在尝试使用序列和select语句(工作语句)进行简单的插入,但是可以使它工作,只是收到此错误:

ORA-00947: not enough values

我提前感谢你的帮助。

1 个答案:

答案 0 :(得分:3)

当您插入三个时,您的选择仅返回一列。如果您需要将它们留空,请将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;