Message posté par : T. Rossini
----------------------------------------
De rien.
C'est d'ailleurs un raccourci.
La "vraie" requête est plus dans ce genre là :
-----------------
Code :
SELECT
id, pays
FROM
ma_table
CROSS JOIN LATERAL
regexp_split_to_table(valeur, '\s*,\s*') as pays
;
-----------------
La clause LATERAL demande à Postgresql
d'évaluer l'expression à sa droite pour chaque élément de
la relation gauche de la jointure et d'effectuer
la jointure sur le résultat, (ici, donc tout les éléments
renvoyées par l'expression sont jointes puisqu'on utilise
un CROSS JOIN)
On peut dire qu'il effectue la jointure pour chaque élément
avec une table "virtuelle" dépendant (ou non) de l’élément.
C'est le même principe qu'avec generate_series (ici table "virtuelle" non dépendante).
-----------------
Code :
CREATE TEMP TABLE foo(bar) AS (SELECT 1 UNION SELECT 2);
SELECT
bar,
i
FROM
foo
CROSS JOIN LATERAL
generate_series(1, 2) i
;
--Renvoie
--1; 1
--1; 2
--2; 1
--2; 2
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325542#p325542
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 : tevrard
----------------------------------------
Merci !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325509#p325509
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 : T. Rossini
----------------------------------------
Salut,
-----------------
Code :
SELECT
id, regexp_split_to_table(valeur, '\s*,\s*') as pays
FROM
ma_table
;
-----------------
https://www.postgresql.org/docs/current/functions-string.html
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325496#p325496
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 : tevrard
----------------------------------------
Bonjour, j'ai une table de la forme
-----------------
Citation :
"id"; "pays"
"1";"BE,LU,PT,CH,BJ"
"2";"DE,AT,BE,ES,IT,GB"
"3";"CH"
"4";"CH"
"5";"DE,BE,ES,IT"
-----------------
Et je souhaite arriver à une table où la clé serait (id, pays) soit
-----------------
Citation :
1;BE
1;LU
..
5;ES
5;IT
-----------------
Je ne vois pas trop comment construire ma requête, si vous pouviez me donner des pistes...
PS : je dispose d'une table de référence "ref_pays" qui liste tous les codes pays
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325486#p325486
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 : T. Rossini
----------------------------------------
Salut,
je dis peut être des bêtises mais peut être
que les colonnes géométriques ne sont pas explicitement typées,
çàd :
-----------------
Code :
the_geom geometry('TypeDeLaGeom', SRID)
-----------------
Du coup QGIS est obligé de scanner les tables pour déterminer SCR
et type de géométrie ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325445#p325445
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,
J'ai intégré récemment dans mon serveur PostGreSQL local la Bd-Topo v3, France entière.
Pas de souci pour y accéder depuis PGAdmin, et y exécuter mes requêtes SQL.
Par contre, quand je passe par QGis pour charger les données, le logiciel mets plusieurs minutes à afficher le contenu du schéma correspondant.
Non pas à charger les données (ça, bien sûr que c'est long), mais à scanner les tables du schéma lorsque je fait :
"Ajouter une couche PostGis > Connecter (à la Bdd de la Bd Topo) > ..."
A ce moment là, QGis affiche en barre d'état en bas :
"Balayage colonne schema.table.geometrie..."
Et c'est ça qui prend plusieurs minutes (toutes les tables sont scannées et ça prend bcp de temps par table)
Par contre, je n'ai pas de souci de lenteur quand je passe par le gestionnaire de BDD (mais qui n'affiche que les données ayant une géométrie).
Vous rencontrez aussi ce problème ?
Merci pour votre aide.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325444#p325444
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 : Sylther
----------------------------------------
RTFM :) Man power :)
Je n'avais absolument pas pensé à cette démarche de base qui consiste à regarder le man.
Grand merci Tumasgiu !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325427#p325427
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 : T. Rossini
----------------------------------------
Salut,
après un petit coup d'oeil au manuel de psql
-----------------
Code :
man psql
-----------------
Si votre script comporte plusieurs commandes distinctes,
psql les exécutera toutes, mêmes si certaines échouent.
Si la p
Vous avez la possibilité de définir la variable psql ON_ERROR_STOP,
qui permet au script de s’arrêter à la première erreur rencontrée.
Quand cette variable est définie, le code de retour après exécution vaudra 3.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325425#p325425
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 : Sylther
----------------------------------------
Bonjour à toutes et tous,
Je travaille sur une base postgres en lançant des requêtes via un script shell qui ressemble à ceci :
-----------------
Code :
#!/bin/bash
# -*- mode:shell-script; coding:utf-8; -*-
psql -h localhost -f maRequete.sql maBase user
if [ $? -eq 0 ] ; then
echo "Ça marche" | mailx -s "Fin du traitement " xxx(a)xxxx.fr
else
echo "Ça marche pas" | mailx -A /home/xxxx/nohup.out -s "ERROR : Fin du traitement : $1" xxx(a)xxxx.fr
-----------------
Mon problème est le suivant : même en cas d'échec de la requéte, le code de retour de psql semble être 0, ce que j'ai vérifié manuellement (ici un ST_union qui plante):
-----------------
Code :
~$ psql -h localhost -f maRequete.sql maBase user
psql:landuse.sql:3: ERREUR: GEOSUnaryUnion: TopologyException: Input geom 1 is invalid: Ring Self-intersection at or near point 618237.49999999965 6897087.5 at 618237.49999999965 6897087.5
~$ echo $?
0
-----------------
Sauriez-vous comment connaître le véritable état de sortie de pgsql après une requête ? J'ai été voir ici (https://docs.postgresql.fr/11/errcodes-appendix.html) , mais sans trouver mon bonheur.
Bref, je suis preneur de toute piste ! :)
Bonne journée,
S.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325423#p325423
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 : T. Rossini
----------------------------------------
-----------------
Citation :
Du coup, pas de doublement des antislash :
-----------------
Doubler les antislash a du sens quand vous devez spécifier
un chemin d'accès windows dans un environnement ou
l'antislash est le caractère d'échappement, c'est à dire qu'il
n'est pas considéré comme un caractère mais qu'il demande
a l'environnement d'interpréter différemment le caractère qui
lui succède (exemple \n, symbolise un retour à la ligne).
Pour que l'environnement interprète l'antislash comme un antislash,
on lui applique lui même un antislash.
-----------------
Citation :
Et quant au fait de sauvegarder 100Go de données (une 20aine de BDD) dans un seul fichier dump, ça vous semble raisonnable ?
-----------------
Ca n'est pas interdit, vous pouvez juste peut etre compresser la sortie
afin de ne pas avoir un gigantesque ficher sql en sortie.
-----------------
Code :
pg_dumpall | gzip > \\serveur-sig\data\db.sql.gz
-----------------
(il vous faut gzip d'installé, ou un programme equivalent)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=325287#p325287
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