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).

#2 Re : Général » message d'erreur sauvegarde pg_dump » 03/10/2011 11:49:21

La ligne complète est la suivante. Il s'agit de la ligne générée automatiquement par le raccourci de sauvegarde de pgAdmin.
C:/Program Files/PostgreSQL/8.4/bin\pg_dump.exe --host localhost --port 5432 --username postgres --format custom --blobs --verbose --file "D:\Mes documents\LOGICIELS_OUTILS_MATERIEL\SGBD_Modelisation\POSTGRE_GIS_ARC_SDE\Sauvegarde\bdsdis24\bdsdis24.backup" bdsdis24

J'ai fais un test en lançant la commande via un fichier bat et en ajoutant -E utf8 et ça semble fonctionner
echo %date%
set x=%date:/=-%
echo %x%
"C:/Program Files/PostgreSQL/8.4/bin\pg_dump.exe" -h localhost -p 5432 -U postgres -E utf8 -F c -b -o -v -f "D:\Mes documents\LOGICIELS_OUTILS_MATERIEL\SGBD_Modelisation\POSTGRE_GIS_ARC_SDE\Sauvegarde\bdsdis24\%x%_bdsdis24.backup" bdsdis24

Par contre je ne suis pas sûr d'utiliser les bonnes options de sauvegarde. Pour une sauvegarde complète d'une base de donnée que préconnisez- comme option et au plus simple ?

#3 Re : Général » message d'erreur sauvegarde pg_dump » 30/09/2011 16:06:55

Bonjour,
La sauvegarde commence par cette ligne pour l'exécution de pg_dump.ex
C:/Program Files/PostgreSQL/8.4/bin\pg_dump.exe --host localhost --port 5432...
Puis dans le texte un peu avant que ça coince j'ai une ligne qui précise que pg_dump: encodage de la sauvegarde = LATIN1 !!! est-il possible de redéfinir l'encodage en UTF8 ?

#4 Re : Général » message d'erreur sauvegarde pg_dump » 29/09/2011 17:57:53

Bonjour,
Je passe pas pgAdmin pour faire la sauvegarde. Clic droit sur ma base de donnée et sauvegarder.

#5 Général » message d'erreur sauvegarde pg_dump » 27/09/2011 14:18:30

Pascal24
Réponses : 8

Bonjour, je viens de monter une nouvelle base de données Postgresql, j'ai voulu faire une sauvegarde et j'ai le message suivant,....

"""pg_dump: Message d'erreur du serveur : ERREUR:  le caractère 0xe28099 du codage « UTF8 » n'a pas d'équivalent dans « LATIN1 »
pg_dump: La commande était : COPY sde.gdb_items (objectid, uuid, type, name, physicalname, path, url, properties, defaults, datasetsubtype1, datasetsubtype2, datasetinfo1, datasetinfo2, definition, documentation, iteminfo, shape) TO stdout;
pg_dump: *** interrompu du fait d'erreurs

Le process a retourné le code de sortie 1."""

... alors que ma base a été définie en UTF8 à la création ?

Merci d'avance de l'éclairage que vous pourrez m'apporter

Pascal

#6 Général » Remplir un champ par jointure spatiale » 16/09/2011 15:35:55

Pascal24
Réponses : 1

Bonjour,
Je souhaite faire une jointure spatiale (PostgrSQL/PostGis) entre une table de point (nomtablepct) et une de polygone (nomtablesurf) afin de remplir
un champ num de la table nomtablepct avec les données du champ num de la table nomtablesurf.
Je veux que cette jointure s’active via une fonction trigger et qu’à chaque création ou mise à jour de données de ma table nomtablepct, que le champ num se remplisse automatiquement avec la valeur du champ num de la table nomtablesurf par jointure spatiale. (Bon là je me suis un peux répété,… )
J’ai fais une fonction et un trigger qui se créent bien sans erreur, mais ça ne me renvoi pas la donnée du champ num et j’ai un message d’erreur sur le terme « geometry ». J’ai probablement fais une erreur dans ma requête ma là je coince.
Merci de votre aide.

CREATE OR REPLACE FUNCTION num_func()
  RETURNS trigger AS
$BODY$
BEGIN
    select into NEW.num num from nomtablesurface where within(NEW.geometry, geometry);
    return NEW ;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION num_func() OWNER TO postgres;

CREATE TRIGGER nomtablepct_num_trig
  BEFORE INSERT OR UPDATE
  ON nomtablepct
  FOR EACH ROW
  EXECUTE PROCEDURE num_func();

#7 Re : Général » Function Create Trigger... » 12/09/2011 16:48:48

Merci Guillaume,

Grace au lien que vous m'avez adressé
* http://docs.postgresql.fr/9.0/plpgsql-trigger.html pour coder une procédure stockée en PL/pgsql pour un trigger.
J'ai pu écrire correctement mon trigger et comprendre le mécanisme.
Ca semble toujours simple quand on a la solution...

-- Création de la table
CREATE TABLE sigprev.carto_cs
(
  carto_ref integer NOT NULL,
  shape st_point,
  CONSTRAINT pk_carto_cs PRIMARY KEY (carto_ref)
)

--Création de la fonction qui appelle la séquence ('cpte_carto_ref_seq')
CREATE OR REPLACE FUNCTION sigprev.test_func()
  RETURNS trigger AS
$BODY$
BEGIN
NEW.carto_ref := nextval('cpte_carto_ref_seq'::regclass);
RETURN NEW;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION sigprev.test_func() OWNER TO postgres;

--Création du trigger qui appel la fonction lors de l'insertion ou la mise à jour de la donnée
CREATE TRIGGER test_trig
  BEFORE INSERT OR UPDATE
  ON sigprev.carto_cs
  FOR EACH ROW
  EXECUTE PROCEDURE sigprev.test_func();

#8 Général » Function Create Trigger... » 12/09/2011 11:47:57

Pascal24
Réponses : 3

Bonjour,
Je suis nouveau sur ce Forum et j'espère être dans la bonne rubrique
Je travaille sur la mise ne place d’une base de données PostgreSQL/PostGis.
J’ai une base de données « bdtest », un schéma «  schematest » et une table « tabletest », dans laquelle je veux que le champ « idtest » se remplisse automatiquement avec une valeur unique qui servira de champs ID spécifique à l’ensemble de la base de données (différentes tables à terme). Ce champ est défini en contrainte de clef primaire.
Pour gérer cette clef unique j’ai mis en place dans le schéma « public » une « séquence » que j’appelle « cpte_idtest », qui génère et distribue aux tables concernées le numéro auto et unique pour la base.
Dans Postgres, avec l’utilisation de la commande suivante ça fonctionne bien :
CREATE TABLE # et de la ligne « idtest integer NOT NULL DEFAULT nextval('cpte_idtest'::regclass),  # appel la valeur suivante de la séquence
Je voudrai faire la même chose en utilisant les fonctions trigger, car je vais mettre à jour la base de données depuis un logiciel externe (SIG ArcEditor/ArcSDE de la société ESRI) et celui-ci n’utilise pas les informations du CREATE TABLE lors de l’insertion d’une nouvelle donnée. L’incrémentation ne fonctionne pas.
Le support d’ESRI m’a dit qu’il fallait utiliser les fonctions trigger pour faire cela.
J’ai bien essayé de « rédiger » un CREATE OR REPLACE FUNCTION puis un CREATE TRIGGER mais sans résultat.
Bon je reconnais que je ne suis pas un spécialiste du SQL.
Le message est un peu long,...
Aussi merci d'avance au courageux qui iront jusqu'au bout ;-) et merci de votre aide ou pistes de recherches sur le sujet.
Salutations,
Pascal24

#9 PSQL » Create Function Trigger » 12/09/2011 11:35:28

Pascal24
Réponses : 1

Bonjour,
Je suis nouveau sur ce Forum et j'espère être dans la bonne rubrique
Je travaille sur la mise ne place d’une base de données PostgreSQL/PostGis.
J’ai une base de données « bdtest », un schéma «  schematest » et une table « tabletest », dans laquelle je veux que le champ « idtest » se remplisse automatiquement avec une valeur unique qui servira de champs ID spécifique à l’ensemble de la base de données (différentes tables à terme). Ce champ est défini en contrainte de clef primaire.
Pour gérer cette clef unique j’ai mis en place dans le schéma « public » une « séquence » que j’appelle « cpte_idtest », qui génère et distribue aux tables concernées le numéro auto et unique pour la base.
Dans Postgres, avec l’utilisation de la commande suivante ça fonctionne bien :
CREATE TABLE # et de la ligne « idtest integer NOT NULL DEFAULT nextval('cpte_idtest'::regclass),  # appel la valeur suivante de la séquence
Je voudrai faire la même chose en utilisant les fonctions trigger, car je vais mettre à jour la base de données depuis un logiciel externe (SIG ArcEditor/ArcSDE de la société ESRI) et celui-ci n’utilise pas les informations du CREATE TABLE lors de l’insertion d’une nouvelle donnée. L’incrémentation ne fonctionne pas.
Le support d’ESRI m’a dit qu’il fallait utiliser les fonctions trigger pour faire cela.
J’ai bien essayé de « rédiger » un CREATE OR REPLACE FUNCTION puis un CREATE TRIGGER mais sans résultat.
Bon je reconnais que je ne suis pas un spécialiste du SQL.
Le message est un peu long,...
Aussi merci d'avance au courageux qui iront jusqu'au bout ;-) et merci de votre aide ou pistes de recherches sur le sujet.
Salutations,
Pascal24

Pied de page des forums

Propulsé par FluxBB