Oracle Fusion énoncé conditionnel avec insert

Je utiliser l'instruction suivante pour insérer ou de mettre à jour le document courant versions de nos clients ont signé:

        MERGE INTO schema.table ccv
          USING (select :customer_id as customer_id, :doc_type as doc_type, :version as Version FROM DUAL) n
          ON (ccv.customer_id = n.customer_id and ccv.doc_type = n.doc_type)
        WHEN MATCHED 
        THEN UPDATE 
            set ccv.version = n.version
            DELETE WHERE ccv.version is null            
        WHEN NOT MATCHED 
        THEN INSERT 
            ( customer_id, doc_type, version)
        VALUES
            (:customer_id,:doc_type,:version)       

Fondamentalement, je veux éviter de mettre sur le même état quand je suis suppression de SUPPRESSION OÙ la déclaration.

Le truc c'est qu'il y a trois différents types de documents (doc_type), mais seulement un ou deux peut-être simulatenously signé.

Si un client a signé un document, alors je veux le stocker à la version, si non, alors je ne veux pas d'un enregistrement avec le document dans la base de données.

Ainsi, lorsque la nouvelle version est nulle j'ai supprimer la ligne existante. Qui fonctionne très bien.
Le problème c'est que quand il n'y avait pas de documents du client stockées, puis oracle fait insère un enregistrement avec version = NULL.

Comment puis-je éviter l'insertion d'enregistrements lorsque :version est nulle?

Est le fractionnement de la fusion de séparer les supprimer, mettre à jour et de l'instruction insert la seule façon de le faire?

OriginalL'auteur SWilk | 2012-05-15