Вставка процедуры Oracle из разных источников - PullRequest
2 голосов
/ 14 июня 2011

Я могу понять, что я делаю не так здесь

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

Заранее благодарю вашу помощь.

1 Ответ

3 голосов
/ 14 июня 2011

Ваш выбор возвращает только один столбец, а вы вставляете три.Если вам нужно оставить их пустыми, добавьте значения 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;
...