0

这是我的脚本 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;
4

1 回答 1

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;
于 2013-09-12T18:21:34.567 回答