Message posté par : Léandre Béron
----------------------------------------
Bonjour,
Pour pouvoir passer de Pg 9.6 vers pg 13, une étape importante est de corriger les tables ayant la clause WITH OID = TRUE (plus compatible à partir de pg12).
Pour toute ces tables, nous allons créer une séquence + créer un attribut en base pour stocker les valeurs actuelles et conserver un attribut "oid" en dur cette fois-ci pour ne pas avoir d'impact sur nos outils SIG.
J'ai donc tenté de lister toutes ces tables via la requête suivante :
-----------------
Citation :
select
pt.schemaname ,
pt.tablename
from
pg_catalog.pg_class pc
join pg_catalog.pg_tables pt on pc.relname=pt.tablename
where
pc.relhasoids
and pt.schemaname != 'pg_catalog';
-----------------
Cela semble fonctionner mais cela me liste aussi des tables donc la clause WITH OID est à FALSE.
Je suis donc allé voir 2 tables spécifiques (une avec la clause TRUE et l'autre FALSE) pour lister leurs attributs via cette requête :
-----------------
Citation :
SELECT DISTINCT
*
FROM
pg_attribute pa
JOIN pg_catalog.pg_class pc on pa.attrelid = pc.oid
JOIN pg_catalog.pg_tables pt on pc.relname=pt.tablename
WHERE
pc.relhasoids
AND attname = 'oid'
AND pt.schemaname IN ('m_education_jeunesse','bdcarto')
AND tablename IN ('centre_loisir','toponymeçzone_habitat');
-----------------
Je vois apparaître une ligne attname = 'oid' pour ma table centre_loisir qui n'a pas cette clause à TRUE, et qui n'a pas non plus d'attribut nommé 'oid' dans la table.
Pour assurer mon test, je suis passé par un
-----------------
Citation :
SELECT oid FROM m_education_jeunesse.centre_loisir;
-----------------
pour vérifier et il n'en existe pas.
Je ne comprends pas pourquoi certaines tables avec cette clause OID FALSE sort dans ma requête, ni pourquoi dans pg_attribute j'ai des lignes pour des attname 'oid' sur des tables qui n'en ont pas.
Peut-on 'nettoyer' les tables systèmes ? Cela pourrait-il provenir de manipulations historiques avec des résidus qui seraient restés ?
Cordialement,
Léandre BERON
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=358960#p358960
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 : Marc SAINTE-CROIX
----------------------------------------
Bonjour,
Je souhaiterai crée un identifiant qui concaténerai le champ n° Insee de commune (5c) + un n° incrémental automatique.
exemple :
01001 1
..
01001 20
01002 1
..
01002 150
etc.
J'ai idée qu'il me faut créer une séquence, mais je ne sais pas comment la remettre à zéro (à 1) pour chaque nouveau n° insee de commune.
En vous remerciant pour votre aide.
Marc
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=359234#p359234
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 : Kiecane
----------------------------------------
Bonjour,
Je souhaiterais réaliser un INSERT INTO de données provenant d'une couche shapefile (.shp) dans ma base de données Postgre/SQL. Certaines de mes colonnes contiennent des données avec les libellés 'oui' ou 'non' ou 'na' exclusivement. Je voudrais donc les intégrer sous la forme de booléens dans les colonnes de la table correspondante qui se trouve dans ma base.
J'ai rédigé un script de la forme suivante :
INSERT INTO mon_schema.ma_table_vide
(
id_table,
colonne1_table,
colonne2_table,
colonne3_table,
colonne4_table,
geom,
)
SELECT
id_shp,
colonne1_shp,
colonne2_shp
colonne3_shp,
colonne4_shp,
geom,
FROM
mon_schema.shp_import
En supposant que colonne2_shp et colonne3_shp soient des booléens (libellés 'oui', 'non', ou 'NA'), pourriez-vous m'indiquer comment procéder pour que le 'oui' de colonne2_shp soit associé à un true dans colonne2_table et ainsi de suite s'il-vous-plaît ? Je n'arrive pas à trouver de solutions, je suppose que mes erreurs sont liées au mauvais placement de mon WHERE : true WHERE mon_schema.colonne2_shp ='oui' OR false WHERE mon_schema.colonne2_shp ='non'.
Je vous remercie de votre compréhension,
Cordialement.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=359132#p359132
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 : Kiecane
----------------------------------------
Bonjour,
Je souhaite réaliser une jointure sur le champ d'une table qui présente des intitulés sans accents, par exemple 'Non Renseigne' en lien avec le champ d'une autre table qui présente les mêmes différents intitulés (chacun étant cette fois-ci associé à une clé primaire car cette table est de type "dictionnaire"), mais avec accents, soit pour l'exemple donné 'Non Renseigné'.
Voici la forme de ma jointure initiale :
SELECT *
FROM mon_schema.table_jointure
INNER JOIN mon_schema.table_dic_jointe
ON table_jointure.champ_sans_accent = table_jointe.champ_avec_accent
J'ai tenté de résoudre le problème que je rencontre actuellement de différentes manières, mais je n'ai pour l'instant pas réussi à en trouver une qui me convienne. J'ai notamment écrit un script de la forme suivante :
SELECT *
FROM mon_schema.table_jointure
INNER JOIN mon_schema.table_dic_jointe
ON REPLACE(table_jointure.champ_sans_accent,'e','é') = table_jointe.champ_avec_accent
Cependant, le script juste ci-dessus ne me permet pas d'obtenir le résultat souhaité car il me renvoie uniquement les lignes qui présentent les problèmes d'accent (par exemple Non Renseigné et Départementale) mais pas celles associées à des libellés sans accents (par exemple celles avec l'intitulé Parking n'apparaissent pas dans la sélection).
Pourriez-vous m'indiquer comment procéder s'il-vous-plaît ?
N'hésitez pas à m'indiquer si vous avez besoin de plus de renseignements.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=359181#p359181
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 : Jean-Marie Arsac
----------------------------------------
Le PG Day France est la conférence annuelle de la communauté francophone de PostgreSQL.
Cette année, l’événement aura lieu les 19 et 20 juin 2023 à Strasbourg.
Retrouvez plus d'informations sur le site de l’événement : https://www.pgday.fr
Vous êtes expert.e sur un domaine lié aux bases de données libres ? Vous avez utilisé PostgreSQL dans un contexte spécifique (gros volumes, forte charge, client reconnu, projet innovant, etc.) ? Vous participez à un projet libre lié à PostgreSQL ?
Alors, n'hésitez pas à proposer une présentation !
Les présentations devront être en français et disponibles sous licence libre. Les interventions pourront faire l'objet d'une captation audio/vidéo et d'une diffusion en direct ou en différé sur internet. Toute soumission à l'appel à oratrices et orateurs implique le consentement à la captation et la diffusion de la présentation. Les oratrices et orateurs devront transmettre à l'équipe organisatrice leur présentation ou un lien web vers leur présentation dans un format standard ( PDF, HTML, etc. ).
La date limite de réception des propositions est fixée au 16 avril 2023 à 23h59 CEST.
Le comité de sélection étudiera toutes les propositions valides. Le choix des interventions sera basé sur la présentation de la soumission, son intérêt pour une audience professionnelle, ainsi que la cohérence du programme de la journée. La décision du comité de sélection sera finale et sans appel.
Le comité de sélection est composé de : Jean-Marie Arsac (Azimut), Stefan Fercot (EDB), Sylvie Halat (Ministère de l’Éducation Nationale) et Stéphane Tachoires (Air France).
Les personnes sélectionnées seront averties par e-mail avant le 7 mai 2023.
Pour toute question à propos de cet appel à orateurs et du PG Day France en général, vous pouvez envoyer un message à l'adresse : contact(a)pgday.fr
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=359131#p359131
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 : SylvaDEES
----------------------------------------
Bonjour,
je cherche à réaliser une requête spatiale SQL permettant :
> Dans un même schémas, de sélectionner toutes les géométries (Points) de la table "Point_topo"
se situant à plus de 50 centimètres - des géométries (Points ou Polylignes) de 10 autres tables ( les 10 conditions doivent être remplies ).
L'objectif est d'effectuer un nettoyage-suppression des géomètries isolées de la table "Point_topo",
via une vue dédiée, ou export au format shape.
Merci pour vos contributions.
Cordialement.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=358836#p358836
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 : Kiecane
----------------------------------------
Bonjour,
Je dois réaliser une insertion de données de mes tables format shapefile dans une base de données et je rencontre certaines difficultés. Je tiens par ailleurs à préciser que je suis novice dans le domaine.
Ces tables .shp sont structurées de manière identique (il y a une table par année) et leur contenu doit majoritairement être intégré à trois tables distinctes de la base de données qui constituent les trois tables principales de cette dernière. Je suis partie du principe qu’il fallait réaliser les insertions table par table dans la bdd et shape par shape. Ce qui me pose problème, c’est l’insertion des champs des tables attributaires de mes .shp qui correspondent à des fk (clés étrangères) dans ma base de données. Autrement dit, dans une table .shp, je vais avoir des champs qui correspondent à une clé étrangère dans la table cible dans laquelle je souhaite insérer mes données. Malheureusement j’ai beaucoup de mal à construire un code pour obtenir le résultat attendu. J’ai conçu un code avec la structure suivante :
INSERT INTO table_cible
(
champ1_tc,
champ2_tc,
champ3_tc,
fk_champ4_tc,
insertion
)
SELECT
champ1_shp
champ2_shp,
champ3_shp,
probleme,
'ajout'
FROM couche_shp
C’est au niveau de "problème" ci-dessus que je rencontre une difficulté : j’ai pensé à faire une double jointure mais cela ne fonctionne pas. Voici la double jointure que j’ai créée :
WITH jointure AS (
SELECT *
FROM couche_shp
INNER JOIN table_dico
ON couche_shp.culture=table_dico.culture
)
SELECT *
FROM table_cible
INNER JOIN jointure
ON num_parcelle = jointure.num_parcelle
WHERE insertion = 'ajout'
sachant que sur la table issue du dernier SELECT * ci-dessus, je souhaite obtenir l’entier associé au type de culture c’est-à-dire id_culture qui est présent dans cette table et qui provient de table_dico (table de type dictionnaire). Il manque donc une ligne de plus, soit :
SELECT id_culture FROM table_issue_du_dernier_select
mais je ne peux pas enchaîner deux WITH à la suite car cela me crée une erreur.
Pourriez-vous m’indiquer la structure du code me permettant de répondre à cette problématique s’il-vous-plaît ? N'hésitez pas à m'indiquer si je dois vous apporter plus de précisions, sachant que par soucis de confidentialité je ne pourrais pas le faire de manière trop détaillée.
Cordialement.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=358946#p358946
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,
Actuellement sous PostgreSQL 9.6, nous allons migrer vers la version 13.
La grosse problématique est qu'environ 50 % de nos tables contiennent l'option WITH OIDS = TRUE et nous ne pouvons donc migrer en v13 ainsi.
Dans un serveur qui a été clôné, je vais effectuer un certain nombre de tests pour passer en v13.
Avant toute chose, je souhaite réaliser un dump de la structure de la base (pas des données, pas d'utilité pour la mise en compatibilité).
Je dois donc récupérer sur les tables ayant l'option WITH OID = TRUE cette même configuration (et aussi celles en OID = FALSE bien entendu).
j'ai réalisé la commande suivante :
-----------------
Citation :
pg_dumpall -l SIG-DEV -h monip -U postgres -p monport -f dumpall-dev-2023-03-07.sql --schema-only --oids --verbose
-----------------
et également celle-ci, sans l'option --oids :
-----------------
Citation :
pg_dumpall -l SIG-DEV -h monip -U postgres -p monport -f dumpall-dev-2023-03-07.sql --schema-only --verbose
-----------------
Lorsque j'ouvre ces .sql, et que je regarde une table qui est en
-----------------
Citation :
WITH OIDS = TRUE
-----------------
, dans ma sauvegarde je suis en
-----------------
Citation :
SET default_with_oids = false;
-----------------
et visiblement pour celles en
-----------------
Citation :
WITH OIDS = FALSE
-----------------
, je suis en
-----------------
Citation :
SET default_with_oids = true;
-----------------
Message posté par : Kiecane
----------------------------------------
Bonjour,
On m'a envoyé un dump .sql avec des données à insérer : chaque paragraphe de données à insérer commence par un COPY schema.table (champ1, champ2, ...) FROM stdin; suivi des données en question. Comme cela ne fonctionne pas lorsque je copie-colle ce type de paragraphe dans pgAdmin, j'utilise Excel pour les réécrire avec des INSERT INTO et rentrer ainsi les données dans les tables de ma bdd. Le seul problème, c'est que parfois les données à la suite du COPY... sont des \N (ce qui doit correspondre à des NULL je suppose) et, lors de l'insertion, cela bloque lorsque la taille du champ est de 1 ou lorsque son type n'est pas un alphanumérique... J'ai essayé de remplacer ces \N par du vide, par des null ou des NULL mais c'est toujours le même problème. Comment faire s'il-vous-plaît ?
Merci d'avance pour l'aide apportée.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=358637#p358637
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