Message posté par : image95
----------------------------------------
Bonjour,
Je travaille sous windows. Postgis et gdal (j'utilise gdal/ogr2ogr depuis l'invit
de commande. Version de gdal disponible sous C:\Program Files\QGIS 3.16\bin).
Jusqu'à maintenant, au sein de ma base postgis, j'effectuais des insertions de
nouvelles entités au sein de table existante
via des requetes SQL du type :
-----------------
Code :
INSERT INTO SCHEMA_humain.TableDestination (
"fieldXX",
"geom")
SELECT
"fieldXX",
"geom"
FROM table_Source
-----------------
Ou bien des mises à jour d'entités (update)
grace à
-----------------
Code :
update
set
from
where
-----------------
Celà fonctionnait. Mais la grosse limite de cette approche est qu'elle necessite au
prealable d'importer au sein de la bdd postgis les shp.
Mon but est donc de directement inserer de nouvelles entités / mettre à jour (depuis
fichier source shp/table destinatation postgis en utilisant gdal.
Afin de s'affranchir de cette importation de shp ds la bdd.
Le fichier source est 1 fichier shapefile de POINTS (EPSG 2154)
La table cible/destination est donc une table postgis deja existante de POINTS (EPSG
2154)
(Je précise que le schema de la table de destination n'est PAS le schema public mais
le schema 'humain'.)
Il semble y avoir 2 approches pour accomplir cette tache. Soit d'utiliser les options
-append associé à -fieldmap.
Soit l'approche avec -sql en définissant la requete SQL.
Je privilegie si possible l'approche avec -sql.
Voici la structure à laquelle je pensais.
-----------------
Code :
ogr2ogr - progress - append D:\XXX.shp
-f PG:"dbname='dbname' host='ipXXXXX' port='5432'
user='XXXX' password='XXXX' active_schema='humain'"
-sql
INSERT INTO schema_humain.TableName (
"champ1",
"champ2",
"champ3",
"geom")
--selection des champs du SHP
SELECT
"champ1",
"champ2",
"champ3",
"geom"
FROM
shp
-----------------
Une personne pourrait elle me dire si je me fourvoie ? Avec cette méthode, est il possible
de specifier les champs du shp au sein de la clause SQL ? (champ non geom et champ geom?).
Lorsque comme moi on a en entrée du shp et en sortie une table postgis, doit on plutot
prioriser l'approche avec -append -addfield ou -update plutot que l'approche avec
-sql ?
Merci beaucoup.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=353329#p353329
Pour y répondre : geolibre(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net