Clave duplicada en INSERT

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • goyleo
    Senior Member
    • sep
    • 102

    #1

    Clave duplicada en INSERT

    como utilizo la exepcion en el insert ITAB_DUPLICATE_KEY ????
    se aplica por medio de TRY ?????
    Si alguien tiene un ejemplo me ayudaria mucho!!!!
  • mysmb2
    Senior Member
    • ene
    • 406

    #2
    hola, porque no probas con un modify
    te agrega un registro a la tabla de diccionario si no existe
    Sebastián Chiavia
    http://www.programacionabap.com.ar

    Comentario

    • chivi82
      Member
      • mar
      • 64

      #3
      Tratamiento de excepciones

      Hola, te pongo un ejemplo de como capturar excepciones:
      TRY.
      SELECT matnr charg ingew sitbu bulid FROM z40bupa
      INTO TABLE g_it_z40bupa
      WHERE matnr IN s_matnr
      AND charg IN s_charg
      AND sitbu IN s_sitbu
      AND werks IN s_werks
      AND ersda IN s_ersda.

      CATCH cx_sy_open_sql_db.
      MESSAGE i098(z40pp) WITH 'Select con demasiados registros'.
      EXIT.
      ENDTRY.

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        Si necesitas un Log ... podrias usar un LOOP y dentro de el un INSERT

        LOOP AT itab ASSIGNING <fs>.
        INSERT ztabla FROM <fs>.
        * Verificando que la entrada existe
        IF sy-subrc NE 0.
        (Llenar una tabla interna para un Log)
        ENDIF.
        ENDLOOP.

        Cuando realizar un INSERT a partir de una estructura no arroja ninguna excepcion, el problema es cuando lo haces a partir de una tabla interna

        INSERT ztabla FROM TABLE itab.
        David Carballido Córdova

        Comentario

        • goyleo
          Senior Member
          • sep
          • 102

          #5
          DavidXD_XD en este caso que me envias si hay registros duplicados en la tabla arrojaria DUMP o estoy equivocado? por lo que vi en la ayuda de sap para el insert, me parecio que existe una manera de manejar una ecepcion ITAB_DUPLICATE_KEY ???? es correcto esto???

          Comentario

          • DavidXD_XD
            Moderator
            • ago
            • 1255

            #6
            No del todo .... como lo habia mencionado, cuando realizas un INSERT usando solo un registro, el resultado dependera del sy-subrc, pero si realizas un INSERT a partir de una tabla interna si arroja un DUMP, la razon es porque dentro de la tabla interna no hay como comunicar que registros han pasado y q otros no, como no se puede controlar SAP solo arroja la excepcion q termina en DUMP, para esos casos es mejor el MODIFY ztabla FROM TABLE itab.
            David Carballido Córdova

            Comentario

            Trabajando...