PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#26 Re : Installation » installation partiel » 23/07/2020 18:25:10

Bonsoir,

Cela semble normal.
Il faut également le paquet postgresql-12-postgis-2.5-scripts ("To create the PostGIS extensions in a PostgreSQL 12 database, the
postgresql-12-postgis-2.5-scripts package must be installed as well
" d'après https://www.ubuntuupdates.org/package/p … stgis-2.5)

#27 Re : Général » Trigger SUM/ GROUP BY postgresql » 20/07/2020 22:47:07

S'il s'agit de simple consultation avec QGIS, il me semble plus simple de créer une vue :

CREATE VIEW surfaces AS
  WITH cte AS (SELECT SUM(surfaces) AS total, site FROM table GROUP BY site)
  SELECT gid,secteur,site,type_surf,surface,code_ent,convention,cte.total AS surface_to FROM table t LEFT JOIN cte ON t.site = cte.site

et d'utiliser cette vue au lieu de la table dans QGIS; ce qui permet de "laisser tomber" la colonne "surface_to" de la table et le trigger.

#28 Re : Général » Fonction / déclencheur entre 2 tables » 09/04/2020 23:19:49

L'appel de la fonction "nompm_func" est déclenché sur un INSERT ou un UPDATE. Donc, la colonne "nom_pm" d'une entité existante n'est mise à jour que si vous modifiez sa géométrie (colonne "geom")

#29 Re : Général » Fonction / déclencheur entre 2 tables » 09/04/2020 08:58:34

Bonjour,

Je ne comprends pas, votre trigger se déclenche lors d'un INSERT/UPDATE de la table "suivi_immeuble" mentionnant la colonne "pm"...
D'après votre explication ce serait plutôt

CREATE TRIGGER nompm
  BEFORE INSERT OR UPDATE OF geom
  ON public.adresse
  FOR EACH ROW
  EXECUTE PROCEDURE public.nompm_func();

#30 Re : Général » Administration base Postgresql via SSH » 18/03/2020 02:27:57

pifor a écrit :
jmarsac a écrit :

Il faut vérifier/corriger l'encodage du fichier .txt contenant le script (D:/Users/jl3/intensetbm_test/intensetbm-etool/script2.txt par exemple)

OK mais comment fait-on avec Windows ?

Le plus simple est d'utiliser notepad++ qui permet de contrôler et convertir l'encodage du fichier (client psql 12, server 11.2); j'ai utilisé deux scripts différents :

itest-ansi.sql (encodé en ANSI) :

\encoding
set client_encoding to 'Win1252';
show client_encoding;
\l b1
insert into t2 values ('öéùàè','ANSI');
select * from t2;
set client_encoding to 'UTF8';
show client_encoding;
select * from t2;
set client_encoding to 'Win1252';
show client_encoding;
select * from t2;

itest-utf8.sql (encodé en UTF8) :

\encoding
set client_encoding to 'Win1252';
show client_encoding;
\l b1
insert into t2 values ('öéùàè','UTF8');
select * from t2;
set client_encoding to 'UTF8';
show client_encoding;
select * from t2;
set client_encoding to 'Win1252';
show client_encoding;
select * from t2;
********* QUERY **********
create table t2 (a text,script_encoding text);
**************************

CREATE TABLE
********* QUERY **********
set client_encoding to 'Win1252';
**************************

SET
********* QUERY **********
show client_encoding;
**************************

 client_encoding 
-----------------
 WIN1252
(1 row)

                                    List of databases
 Name |  Owner   | Encoding |      Collate       |       Ctype        | Access privileges 
------+----------+----------+--------------------+--------------------+-------------------
 b1   | postgres | UTF8     | French_France.1252 | French_France.1252 | 
(1 row)

********* QUERY **********
insert into t2 values ('öéùàè','ANSI');
**************************

INSERT 0 1
********* QUERY **********
select * from t2;
**************************

   a   | script_encoding 
-------+-----------------
 öéùàè | ANSI
(1 row)

********* QUERY **********
set client_encoding to 'UTF8';
**************************

SET
********* QUERY **********
show client_encoding;
**************************

 client_encoding 
-----------------
 UTF8
(1 row)

********* QUERY **********
select * from t2;
**************************

   a   | script_encoding 
-------+-----------------
 öéùàè | ANSI
(1 row)

********* QUERY **********
set client_encoding to 'win1252';
**************************

SET
********* QUERY **********
select * from t2;
**************************

   a   | script_encoding 
-------+-----------------
 öéùàè | ANSI
(1 row)

********* QUERY **********
set client_encoding to 'Win1252';
**************************

SET
********* QUERY **********
show client_encoding;
**************************

 client_encoding 
-----------------
 WIN1252
(1 row)

                                    List of databases
 Name |  Owner   | Encoding |      Collate       |       Ctype        | Access privileges 
------+----------+----------+--------------------+--------------------+-------------------
 b1   | postgres | UTF8     | French_France.1252 | French_France.1252 | 
(1 row)

********* QUERY **********
insert into t2 values ('öéùàè','UTF8');
**************************

INSERT 0 1
********* QUERY **********
select * from t2;
**************************

     a      | script_encoding 
------------+-----------------
 öéùàè      | ANSI
 öéùàè | UTF8
(2 rows)

********* QUERY **********
set client_encoding to 'UTF8';
**************************

SET
********* QUERY **********
show client_encoding;
**************************

 client_encoding 
-----------------
 UTF8
(1 row)

********* QUERY **********
select * from t2;
**************************

     a      | script_encoding 
------------+-----------------
 öéùàè      | ANSI
 öéùàè | UTF8
(2 rows)

********* QUERY **********
set client_encoding to 'Win1252';
**************************

SET
********* QUERY **********
show client_encoding;
**************************

 client_encoding 
-----------------
 WIN1252
(1 row)

********* QUERY **********
select * from t2;
**************************

     a      | script_encoding 
------------+-----------------
 öéùàè      | ANSI
 öéùàè | UTF8
(2 rows)

Comme le dit Pifor, l'important est de bien configurer l'encodage du client et d'utiliser la bonne page de code dans la console (chcp)

#31 Re : Général » Administration base Postgresql via SSH » 17/03/2020 18:09:02

LECARROU a écrit :

j'ai modifier runpsql.bat et je n'ai plus l'avertissement au lancement de psql (cool)

si je fait

INSERT INTO adm_pay (pay_nom_eng,pay_nom_fra,pay_abr) VALUES ('Ivory Coast','Côte d Ivoire','CIV');

directement dans la console pslq pas de problème, il m'insère correctement les accents

mais si je lance le script depuis la console : \i 'D:/Users/jl3/intensetbm_test/intensetbm-etool/script2.txt' toujours un problème sur les accents...

Il faut vérifier/corriger l'encodage du fichier .txt contenant le script (D:/Users/jl3/intensetbm_test/intensetbm-etool/script2.txt par exemple)

#34 Re : Général » Administration base Postgresql via SSH » 17/03/2020 16:17:57

Bonjour,

L'encodage de la console Windows est 850.

Faites :
chcp 1252
avant de lancer psql et tout devrait rentrer dans l'ordre

#35 Re : Installation » installation les extentions postgresql » 03/09/2019 14:27:11

Bonjour,

Oui sous Debian; je pense qu'il en est de même sous Ubuntu

#36 Re : Général » client-9.1 postgresql » 31/07/2019 17:33:01

La description dit "This package contains client and administrative programs for PostgreSQL: these are the interactive terminal client psql and programs for creating and removing users and databases. "

Il contient donc les utilitaires "client": psql, createdb, createuser,etc..

Ce package est nécessaire sur les machines clients devant se connecter à une BD PostgreSQL installée sur une autre machine (serveur)

Ceci dit, vous devriez, si vous le pouvez,  mettre à jour le système et PostgreSQL qui semblent tous les deux obsolètes

#37 Re : Général » erreur pendant la creation d'extention » 07/04/2019 16:49:00

Bonjour,

Tout est dans le message d'erreur, le fichier  /usr/share/postgresql/11/extension/pgsentinel.control est introuvable

Si vous avez suivi ce tutoriel d'installation (https://blog.dbi-services.com/pgsentine … ostgresql/),  je pense qu'il faut remplacer

cp pgsentinel.control /usr/pgsql-10/share/extension
cp pgsentinel--1.0.sql /usr/pgsql-10/share/extension
cp pgsentinel.so /usr/pgsql-10/lib

par

cp pgsentinel.control /usr/share/postgresql/11/extension
cp pgsentinel--1.0.sql /usr/share/postgresql/11/extension
cp pgsentinel.so /usr/lib/postgresql/11/lib

pour copier les fichiers dans les répertoires correspondants à votre installation de PostgreSQL

#38 Re : Général » Excel / ODBC / Base de données » 18/12/2018 23:30:57

pleone35 a écrit :

Problème réglé !!

J'ai du réinstaller la suite Office 365 qui avait été installé en 32 bits et non en 64 bits ce qui posait le problème d'incompatibilité.
Donc aucun soucis du côté de PostgreSQL

Bonsoir,

Pour info, la source ODBC doit utiliser la même architecture que le client qui l'utilise (et non le serveur qu'elle interroge). Par conséquent

Office 32 bits + ODBC 32 bits pour connection à PostgreSQL 32 ou 64 bits OK

Office 64 bits + ODBC 32 bits pour connection à PostgreSQL 32 ou 64 bits KO

Office 32 bits + ODBC 64 bits pour connection à PostgreSQL 32 ou 64 bits KO

#39 Re : Site PostgreSQL.fr » databasename\r » 05/10/2018 15:36:48

Cela me fait penser à une fin de ligne Windows, copiée/collée dans un script unix.
Si dans psql vous faites
CREATE DATABASE base_1;
puis
\l
qu'obtenez-vous ?

#40 Re : Général » Dblink oracle vers postgre et format numeric, decimal » 28/09/2018 11:29:09

Comme Guillaume, je n'ai jamais fait mais je regarderais du côté du pilote ODBC (version, paramètres).

#41 Re : PL/pgSQL » syntaxe trigger pour remplir une clé secondaire » 27/07/2018 13:01:54

Bonjour,

Lors d'une insertion NEW.id_A est nul.

Il faut remplacer

    IF (TG_OP = 'INSERT') THEN SELECT nextval('seq_id_A') INTO id_A;
       
        INSERT INTO TableA (id_A, num_A)
               VALUES (DEFAULT, NEW.num_A);

par

    IF (TG_OP = 'INSERT') THEN SELECT nextval('seq_id_A') INTO NEW.id_A;
       
        INSERT INTO TableA (id_A, num_A)
               VALUES (NEW.id_A, NEW.num_A);

sinon NEW.id_A reste nul et l'utilisation de DEFAULT génère une nouvelle valeur de la séquence qui est utilisée dans tableA


mais la valeur saisie sera ignorée si vous indiquez la valeur de "id_A" dans la requête INSERT (ce qui ne devrait jamais être le cas puisque vous utilisez une séquence)

j'utiliserais plutôt deux triggers distincts :

-le premier déclenché par les modifications sur la vue qui met à jour tableA
- le second déclenché par les modifications sur tableA qui met à jour tableB

#42 Re : PL/pgSQL » erreur sur condition if potsgres 10 » 07/07/2018 09:03:45

Bonjour,

OFFSET est un mot réservé, vous pouvez renommer la variable en v_offset (par exemple).

#43 Re : Général » Gestion nombre de connexion concurrente par session » 13/06/2018 15:24:55

Bonjour,

Soit user1 et user2 sont des rôles Postgres, ou bien à chacun correspond un rôle Postgres spécifique et vous appliquez la solution donnée par arthurr.
Soit ce sont des utilisateurs "virtuels" gérés par votre application et c'est à elle de gérer également le nombre  limite de connexions pourchaque utilisateur "virtuel"

#44 Re : Général » données supplémentaires après la dernière colonne att » 04/06/2018 10:49:48

Bonjour,

Pouvez-vous fournir au moins un extrait du csv. Comme l'a déjà dit Guillaume, difficile de raisonner dans le vide.

#45 Re : Général » données supplémentaires après la dernière colonne att » 01/06/2018 17:29:10

Oui.
Pour supprimer le dernier ';' :
Sous linux ou unix avec "vi":
:1,$s/\;$//

Sous Windows (avec notepad++ou tout éditeur supportant les expressions rationnelles) :
Recherche > Remplacer...
Recherche: \;$
Remplacer par : <vide>
Cocher la case "Expression regulière" puis cliquer sur  "Remplacer tout"

#47 Re : Général » Mise en forme » 01/06/2018 11:21:45

Bonjour,
En complément, il y a quelques mois Daniel Vérité a publié sur son blog à propos d'un pager pour psql qui semblait prometteur

#48 Re : PgAdmin3 » Tâches plannifiées : Exporter importer ? » 30/05/2018 17:27:15

Bonjour,
Personnellement, je trouve plus simple d'utiliser le système de tâches planifiées de l'OS (crontab sous linux et autre unixlike, Planificateur de tâches sous Windows)

#50 Re : pgAdmin4 » saisie d'attributs avec pré contrôle sur les valeurs » 16/04/2018 16:51:42

Quel est le message d'erreur ?
Il me semble qu'il y a une erreur dans le nom de la table 0 au lieu de O

Pied de page des forums

Propulsé par FluxBB