Mise à jour de données non versionnées de géodatabase dans DB2 avec SQL

Vous pouvez utiliser SQL pour mettre à jour, insérer des données et supprimer des données de tables non versionnées dans la géodatabase si elles ne participent pas au comportement de la géodatabase. Consultez la rubrique Type de données pouvant être modifié avec SQL pour plus d'informations sur les types de données et comportements de géodatabase que vous ne pouvez pas modifier avec SQL.

Toutes les données enregistrées avec la géodatabase possèdent un champ ObjectID (ID de ligne) géré par le système, unique et non nul. Lorsque vous utilisez SQL pour insérer des enregistrements dans des tables non versionnées de la géodatabase, vous devez fournir une valeur unique pour l'identifiant ObjectID.

Ces instructions expliquent la procédure de mise à jour, ligne par ligne. Vous écrirez probablement une routine ou un programme client pour récupérer des identifiants ObjectID et mettre à jour vos données.

Etapes :
  1. Connectez-vous à la base de données à partir d'un éditeur SQL, tel que DB2 CLI (Call Level Interface).

    Connectez-vous à la base de données avec un nom d'utilisateur autorisé à modifier les données.

  2. Exécutez une instruction SQL similaire à la suivante pour appeler la procédure Next_RowID.

    La procédure stockée Next_RowID utilise le propriétaire de la table et le nom de la table comme entrée pour renvoyer le prochain identifiant ObjectID de la table.

    Dans cet exemple, GIS est le propriétaire de la table, FACTORIES est le nom de la table et les trois points d'interrogation indiquent les trois paramètres renvoyés : ROWID, MSGCODE et MESSAGE.

    CALL SDE.next_rowid('GIS','FACTORIES',?,?,?)
    Value of output parameters
    -----------------------------
    
    Parameter Name : O_ROWID
    Parameter Value : 18
    
    Parameter Name : O_MSGCODE
    Parameter Value : 0
    
    Parameter Name : O_MESSAGE
    Parameter Value : Procedure successfully
    completed.
    
    Return Status = 1
    
  3. Insérez un enregistrement dans la table en utilisant la valeur O_ROWID renvoyée par l'instruction d'appel précédente.
    INSERT INTO FACTORIES
    (OBJECTID,NAME,SHAPE)
    VALUES(
    18,
    'megafactory',
    db2gse.ST_PolyFromText('POLYGON( ( 50 31, 54 31, 54 29, 50 29, 50 31) )',
    db2gse.coordref()..srid(101))
    );
    
  4. Vous pouvez continuer la mise à jour ou, si vous avez terminé, valider vos modifications dans la base de données.

Thèmes connexes

9/12/2013