这是我的脚本pl。实际上,没有遵守“线搜索”线EOF条件。因此,主键中发生了违规行为。
有人可以帮忙吗? 谢谢。
IF TRIM(v_descricao_uo_municipio) = 'Belo Horizonte - Registro de Imóveis' THEN -- id = 2430
/* Abre o cursor das UO's para inserção */
OPEN cr_cartorio_uo(v_id_uo_municipio);
loop
Line to fetch: FETCH cr_cartorio_uo INTO v_id_uo, v_descricao_uo; -- Problem is here
/* Faz carga em "grupodeenviouo" */
INSERT INTO grupodeenviouo (grupodeenvio_id, uo_id)
VALUES (v_returning_grupo_id, v_id_uo);
EXIT WHEN cr_cartorio_uo%NOTFOUND;
END LOOP cr_cartorio_uo;
END IF;
答案 0 :(得分:2)
发生主键冲突只是因为光标中的最后一行被提取两次。而且这种情况发生的原因是错误的EXIT WHEN cr_cartorio_uo%NOTFOUND
声明 - 它应该在FETCH cr_cartorio_uo INTO
声明之后发布:
if trin(v_descricao_uo_municipio) = 'Belo Horizonte - Registro de Imóveis'
then
/* Abre o cursor das UO's para inserção */
open cr_cartorio_uo(v_id_uo_municipio);
loop
fetch cr_cartorio_uo
into v_id_uo, v_descricao_uo; -- Problem is here
exit when cr_cartorio_uo%notfound;
/* Faz carga em "grupodeenviouo" */
insert into grupodeenviouo (grupodeenvio_id, uo_id)
values (v_returning_grupo_id, v_id_uo);
end loop cr_cartorio_uo;
end if;