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. Reportez-vous à la rubrique Type de données pouvant être modifié avec SQL pour avoir des informations sur les types de données et le comportement de la 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. Vous pouvez utiliser la fonction Next_Row_ID pour insérer une valeur au champ ObjectID à l'aide de SQL.
Ces instructions expliquent la procédure de mise à jour, ligne par ligne, dans une table non versionnée, ainsi que la procédure d'insertion d'un ObjectID. Vous écrirez probablement une routine ou un programme client pour récupérer des identifiants ObjectID et mettre à jour vos données.
- Connectez-vous à la base de données à partir d'un éditeur SQL, tel que I-SQL.
Connectez-vous à la base de données avec un nom d'utilisateur autorisé à modifier les données.
- Interrogez la table table_registry pour trouver l'ID d'enregistrement et le propriétaire de la table dans laquelle vous souhaitez insérer un enregistrement.
Dans cet exemple, l'ID d'enregistrement et le nom du propriétaire de la table factories sont renvoyés.
SELECT owner,registration_id,table_name FROM sde.table_registry WHERE table_name='factories'; owner registration_id table_name editor1 7 factories
- Connectez-vous pour exécuter la fonction next_row_id et obtenir la prochaine valeur d'identifiant de ligne disponible.
- Exécutez la fonction next_row_id. Cette fonction est la propriété de l'utilisateur sde.
Dans cet exemple, editor1 est le propriétaire de la table et 7 est l'ID d'enregistrement de la table factories.
EXECUTE FUNCTION "sde".next_row_id('editor1',7); ret_code 0 err_msg rowid 18 1 row(s) retrieved.
- Revenez à l'éditeur SQL et insérez un enregistrement dans la table.
INSERT INTO factories VALUES ( 18, 'makem' ST_PolyFromText('POLYGON((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18))',4326) );
Si la table contient également un champ GUID ou ID global, vous devez fournir une valeur unique pour ce champ. Pour plus d'informations, reportez-vous à la rubrique Insertion d'une valeur dans une colonne d'identifiant global dans Informix à l'aide de SQL.