Message posté par : NicolasTau (minitoz40b(a)gmail.com)
----------------------------------------
Bonjour,
Je créé ce sujet en espérant que quelqu'un pourra m'aider à résoudre mon problème.
Pour résumer, je n'arrive pas à rentrer de données géographiques dans ma base de données. J'utilise QGIS 3.3 avec PostgreSQL10/pgAdmin4/PostGIS3.
Je précise que je débute avec les SBDR, SIG,... Je ne les utilise que depuis peu pour mes études.
Je voudrais en fait créer des points de toutes pièces sur une carte. J'ai donc commencé par créer une table où j'ai ajouté toutes les informations de mes différents sites que j'ai tout simplement appelé "Sites". Ensuite, j'ai créé une colonne "Geom" qui va contenir l'information géographique avec la commande suivante :
-----------------
Code :
ALTER TABLE Public."Sites" ADD COLUMN Geom geometry(POINT, 4326);
-----------------
Jusque là, tout va bien ! J'ai ensuite créé deux colonne "long" et "lat" (ce sont des données "real") pour que l'information géographique se cale sur les longitudes et latitudes que j'entre dans la table. Ensuite, quand je veux ajouter des données dans cette colonne "geom", j'utilise donc cette requête :
-----------------
Code :
UPDATE public."Sites" Set geom = st_srid(st_makepoint(Sites.long,Sites.lat),4326);
-----------------
Le logiciel me renvoie l'erreur suivante :
-----------------
Code :
ERREUR : ERREUR: entrée manquante de la clause FROM pour la table « sites »
LINE 1: ...TE public."Sites" Set geom = st_srid(st_makepoint(Sites.long...
^
État SQL : 42P01
Caractère : 55
-----------------
Est-ce que je me suis trompé dans la commande ? ou est-ce qu'il y a une erreur de syntaxe que je n'ai pas remarqué ?
Merci d'avance,
Bonne soirée
Nicolas.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339139#p339139
Pour y répondre : geobd(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
Message posté par : Tommy_F (t.fernandez(a)solveo-energie.com)
----------------------------------------
Bonjour chers confrères,
J'ai cherché à importer des raster dans ma base de données postgis, j'ai suivi les procédures que l'on retrouve sur le net et l'écriture du raster dans ma BDD se fait correctement.
Commande utilisée : raster2pgsql -C -c -e -I -M -s 2154 -t 1000x1000 C:Usersnom_utilisateurtest.asc | psql -h localhost -U postgres -d postgres
Toutefois, lorsque j'essaie ensuite de l'ouvrir via Qgis, j'ai un message d'erreur qui apparait :
Couche non valide : Raster layer Le fournisseur de données n'est pas valide (prestataire : postgresraster, URI : dbname='postgres' host=localhost port=5432 user='postgres' password='nom_utilisateur' sslmode=disable srid=2154 table="public"."test" (rast) (file: ......srccorerasterqgsrasterlayer.cpp row: 616function QgsRasterLayer::setDataProvider:)
Pour contrer ce problème, j'ai crée une overview du raster dans postgis qui me permet de réussir à afficher mon raster dans Qgis.
Auriez-vous un moyen de ne pas devoir passer par cet intermédiaire pour afficher le raster ?
Par avance, merci pour vos réponses.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339272#p339272
Pour y répondre : geobd(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
Message posté par : Lison94
----------------------------------------
Bonjour à tous,
Je commence à utiliser pgadmin 4, j'ai déjà une connexion de créée mais je ne peux pas ajouter une nouvelle bdd. En effet, la case create database est grisée (cf fichier joint). Il en ai de même pour la création d'un nouveau login..
Avez vous une explication ?
Merci par avance pour votre aide.
Lison
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339210#p339210
Pour y répondre : geobd(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
Message posté par : Sylvain M.
----------------------------------------
Bonjour à tous,
Je dispose, dans un BDD Spatialite, de 2 tables, dont l'une avec un champ geom (MULTIPOLYGON).
Si je créé une nouvelle table, issue de la jointure des 2 (CREATE TABLE AS SELECT * FROM A JOIN B on A.id = B.id), le champ geom de la table créée n'est plus reconnu comme geometry, mais comme NUM, avec du contenu hexadecimal (je crois que c'est le format BLOB de SQLite).
Pourriez-vous m'indiquer la meilleure solution pour qu'une table issue de sélection soit reconnue comme table spatiale ?
PS. : je fais mes requête depuis le gestionnaire de BD de QGis
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339167#p339167
Pour y répondre : geobd(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
Message posté par : preliator
----------------------------------------
Bonjour,
Je dispose d'une table répertoriant l'ensemble des parcelles cadastrales de la France. Une des colonnes de la table (nommée "dep") renseigne sur le numéro de département dans lequel se situe chaque parcelle.
Je voudrais exporter cette table au format .sql, mais en plusieurs blocs. L'idée, c'est d'avoir autant de fichier .sql qui y a de modalité dans "dep", et chaque fichier comporterait l'ensemble des parcelles contenues dans le département qui lui est associé.
L'objectif, c'est simplement de ne pas avoir à restaurer les dizaines de millions de parcelles de la table systématiquement, mais de choisir juste le département dont j'ai besoin.
J'ai commencé à regarder du côté de psql ou pg_dump, sans parvenir à trouver une solution. Est-il possible de faire cela ?
Merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=338873#p338873
Pour y répondre : geobd(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
Message posté par : Léandre Béron
----------------------------------------
Bonjour,
Je souhaiterais à l'aide d'un trigger, lors d'une suppression d'un objet linéaire, supprimer également tous les objets d'une table de correspondance où une clé étrangère donne sur mon objet linéaire.
an_voie : des noms de voie.
an_section_voie : Table de correspondance entre mes linéaires et une ou plusieurs voie associée.
(Un linéaire peut en effet avoir une ou plusieurs voie liée, une association N,N dans un MCD)
geo_section_voie : Mes linéaires
A la suppression d'un linéaire de voie, je dois également supprimer tous les objets dans la table an_section_voie qui ont une valeur de mon ID de geo_section_voie.
En faisant un AFTER DELETE, je n'arrive pas à récupérer mon ID de mon linéaire.
En faisant un BEFORE DELETE, je n'ai pas non plus réussi...
Voilà mon code ci-dessous.
Ne vous préoccuper pas de la première partie, qui recalcule la longueur de la voie suite à une suppression d'objets dans la table de correspondance.
-----------------
Citation :
CREATE FUNCTION rva.delete_calcul_longueur_voie() RETURNS trigger AS $BODY$
DECLARE
v_long_delete real;
v_id_delete integer;
begin
IF (TG_TABLE_NAME = 'an_section_voie') THEN
SELECT longueur FROM rva.an_voie WHERE id_voie = OLD.id_voie INTO v_long_delete;
-- on recalcul la longueur avec le OLD.idvoie
v_id_delete := OLD.id_voie; -- on récupère ancien id_voie associé
v_long_delete := v_long_delete - (SELECT sum(st_length(s.geom)) FROM rva.geo_section_voie s, rva.an_section_voie sv
WHERE sv.id_sectvoi = OLD.id_sectvoi AND s.id_section = sv.id_section);
IF v_long_delete IS null THEN -- si null on met 0 (nécessaire car le null emporte sur le 0 sur l'opération v_long_old au dessus)
v_long_delete := 0;
END IF;
UPDATE rva.an_voie SET longueur = v_long_delete WHERE id_voie = v_id_delete;
END IF;
-- marche pas ça...
IF (TG_TABLE_NAME = 'geo_section_voie') THEN
DELETE FROM rva.an_section_voie WHERE id_section = OLD.id_section;
END IF;
return NEW;
end;
$BODY$ LANGUAGE plpgsql;
-----------------
Et les triggers associés à cette fonction :
-----------------
Citation :
CREATE TRIGGER tr_calc_voies3 BEFORE DELETE ON rva.an_section_voie
FOR EACH ROW EXECUTE PROCEDURE rva.delete_calcul_longueur_voie();
-- lui ne marche pas..
CREATE TRIGGER tr_calc_voies4 BEFORE DELETE ON rva.geo_section_voie
FOR EACH ROW EXECUTE PROCEDURE rva.delete_calcul_longueur_voie();
-----------------
Visiblement un besoin simple, que je n'arrive pas à faire....
Egalement, si je supprime les objets dans cette table de correpondance, est-ce que ma première partie de ma fonction trigger va se réaliser (sachant que pour chaque suppression d'objets dans la table an_section_voie, je lance cette procédure) ?
En espérant avoir été compréhensible dans ma demande :)
Merci d'avance
Léandre
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=338629#p338629
Pour y répondre : geobd(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
Message posté par : Tomapinfo (numerobisco04(a)hotmail.fr)
----------------------------------------
Bonjour,
J'essaye de reproduire un trigger qui fonctionne bien dans PostgreSQL/Postgis dans Oracle.
Le trigger remonte des informations lors de la saisie ou de la modification.
-----------------
Code :
CREATE OR REPLACE FUNCTION x.champs_auto()
RETURNS trigger AS
$BODY$BEGIN
NEW.num_insee = x.communes.num_insee FROM x.communes WHERE st_intersects(NEW.geom, x.communes.geom);
RETURN NEW;
END$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
-----------------
Mais dans Oracle, l'ecriture n'est pas identique et au mieux j'ai réussi à faire ça.
-----------------
Code :
CREATE OR REPLACE TRIGGER "DBO"."Cps_auto_I" BEFORE INSERT --
ON Y --
FOR EACH ROW --
declare INSEE VARCHAR2(20) DEFAULT '';
Begin --
Select b.NUM_INSEE into INSEE from ua b WHERE SDO_RELATE(:NEW.GEOMETRIE,b.GEOMETRIE,'mask=INSIDE') = 'TRUE' and b.SOUS_TYPE = 'COMMUNES';
:NEW.NUM_INSEE := INSEE ;
;
End;
-----------------
Mais j'obtiens cette erreur alors que j'ai bien un index sur les 2 tables.
-----------------
Citation :
Erreur SQL : ORA-13226: interface non prise en charge sans index spatial
-----------------
Je penses donc que l'objet n'est pas encore enregistré et donc pas dans l'Index.
Car le select seul fonctionne bien.
Au vue de ce message je me demande s'il y est vraiment possible de faire se genre de requête dans un trigger ?
Si cela est possible avez-vous une idée pour le corriger ?
Merci par avance.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=335958#p335958
Pour y répondre : geobd(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
Message posté par : preliator
----------------------------------------
Bonjour,
Je suis étudiant en Master géomatique, et j'aimerais avoir accès aux fichiers fonciers MAJIC anonymisés dans le cadre d'un travail en lien avec la formation. Est-ce que je suis en droit d'obtenir cette donnée gratuitement ?
Merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=338575#p338575
Pour y répondre : geobd(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
Message posté par : preliator
----------------------------------------
Bonjour,
Jusqu'à présent, je stockais mes bases de données dans un SSD (Sabrent 1TB), qui est aussi mon disque C. Au fil du temps, mes BDD prenaient trop de place, et j'ai aujourd'hui décidé de les stocker dans un disque dur interne (Seagate BarraCuda 4 To, SATA 6 Gbit/s 5400 tr/min).
Concernant les requêtes, j'ai l'impression d'avoir un temps d'exécution similaire pour les petites tables (< 2 millions d'entrées). En revanche, le temps double pour les plus grosses (> 15 millions d'entrées), et j'ai mis une dizaine d'heure à les importer dans Postgre.
Est-ce que passer du SSD au disque dur inclue forcément une baisse de performance dans les requêtes ? Quels types de SSD utilise t-on le plus souvent pour optimiser le stockage et les requêtes ?
Merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=338569#p338569
Pour y répondre : geobd(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