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

#27 Re : Général » Question bête: Faire un dump avec du sql » 16/04/2009 16:22:51

Merci.
En supposant avoir l'espace nécessaire sur le serveur. comment puis-je faire un pg_dump avec php?
Merci

#28 Re : Général » Question bête: Faire un dump avec du sql » 15/04/2009 19:16:56

L'objectif est d'exécuter cette requête à travers un script PHP.

#29 Général » Question bête: Faire un dump avec du sql » 15/04/2009 18:24:08

zied
Réponses : 5

Est-ce que c'est possible de faire une sauvegarde globale d'une base de données (schéma,Données,procédures stockées...) en utilisant une requête sql.

merci

#30 Installation » Installation PGAgent » 15/04/2009 14:16:12

zied
Réponses : 16

Bonjour
J'ai essayé dinstaller PGAGENT sous Windows.
Le service est bien installé mais pas démarré.
Quand j'essaie de le démarrer manuellement, je reçois un msg d'erreur comme quoi le service a démarré mais s'est ensuite arrêté à cause d'un problème.

Comment puis-je identifier la source et résoudre ce problème?
Merci

#31 Re : Général » Sauvegarde PgAdmin-Disparition » 10/04/2009 09:05:15

J'ai trouvé la source du problème.
Il y a un répertoire c:\program qui cause une confusion avec c:\Program files. Je l'ai juste supprimé.
Merci pour l'aide.

#32 Re : Général » Sauvegarde PgAdmin-Disparition » 09/04/2009 18:24:35

pg_dump existe bien dans le m^me répertoire.

#33 Général » Sauvegarde PgAdmin-Disparition » 09/04/2009 17:14:29

zied
Réponses : 4

Bonjour
L'option Sauvegarde dans le menu contextuel de PGAdmin  a disparu subitement de mon application!
L'option est désactivée dans le menu principal de l'application également.
Je suis connecté en tant que superuser.
???????????

#34 Re : Général » Génération des scripts pour toute une base » 17/02/2009 15:18:01

Bonjour
Moi ça m'intéresserait de connaitre s'il y a un moyen d'automatiser cette tache quotidiennement.
Merci

#35 Re : Général » Problème avec fonction connectby » 28/01/2009 19:20:06

Le problème se trouve plutôt du côté du 4ème paramètre qui doit être fournit en tant que texte quelle que soit son type c-a-d il faut mettre '3' au lieu de 3.

SELECT * FROM connectby('vparent_child', 'chi_ver', 'par_ver', '3', 0, '~')
 AS t(chi_ver bigint, par_ver bigint, level int, branch text);

#36 Général » Problème avec fonction connectby » 27/01/2009 19:02:29

zied
Réponses : 2

J'ai une vue dont le script de création est le suivant

CREATE OR REPLACE VIEW vparent_child AS 
 SELECT par.prod_id AS par_id, par.prod_version AS par_ver, par.prod_ref AS par_ref, par.prod_indice_rev AS par_ind, par.statut AS par_statut, par.date_heure AS par_date_heure, chi.prod_id AS chi_id, chi.prod_version AS chi_ver, chi.prod_ref AS chi_ref, chi.prod_indice_rev AS chi_ind, chi.statut AS chi_statut, chi.date_heure AS chi_date_heure
   FROM prod_evolution par, prod_evolution chi, nomenclature nom
  WHERE chi.prod_version = nom.prod_ver AND par.prod_version = nom.parent_prod_ver;

ALTER TABLE vparent_child OWNER TO postgres;

J'ai effectué la requête suivante avec la fonction récursive connectby :

SELECT * FROM connectby('vparent_child', 'chi_ver', 'par_ver', 3, 0, '~')
 AS t(chi_ver bigint, par_ver bigint, level int, branch text);

J'ai eu le message d'erreur suivant :

ERREUR:  la fonction connectby(unknown, unknown, unknown, integer, integer, unknown) n'existe pas
LIGNE 1 : SELECT * FROM connectby('vparent_child', 'chi_ver', 'par_ver...
                        ^
ASTUCE : Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.

What's happening?

#40 Général » Connectby et récrusivité » 05/01/2009 10:37:55

zied
Réponses : 1

J'ai besoin d'utiliser la fonction connectby pour la gestion d'une nomenclature arborescente. Je fais une sorte de "microERP".
La doc se trouve sur  http://docs.postgresqlfr.org/8.3/tablefunc.html
J'ai deux questions :
1 - L'exemple de la doc se base sur une table à trois colonnes

CREATE TABLE connectby_tree(keyid text, parent_keyid text, pos int);

ensuite une requête

SELECT * FROM connectby('connectby_tree', 'keyid', 'parent_keyid', 'row2', 0, '~')
 AS t(keyid text, parent_keyid text, level int, branch text);

Ma question, si j'ai d'autres colonnes comment puis-je les afficher?

2- Cet exemple permet à partir d'un nœud de ressortir tous les sous niveaux ou enfants.
Ma deuxième question est de faire l'inverse c-a-d, à partir d'un élément, comment puis-je ressortir les parents?

Merci

#41 Re : Général » Récupération de Données suite à un crash de windows » 05/01/2009 10:24:42

La seule chose dont je me rappelle, c'est que j'ai essayé de faire une maj de la version 8.3.4 standard vers la 8.3.5 avec une installation EntrepriseDB http://www.enterprisedb.com/products/pg … do#windows.
Je l'ai fait juste avant le crach de windows.

#42 Re : Général » Récupération de Données suite à un crash de windows » 03/01/2009 18:47:49

gleu a écrit :

Tu dois avoir une autre erreur avant. En tout cas, si tu n'as que ce message, tu vas pouvoir récupérer tes données.

Merci c'est rassurant. mais comment?

#43 Re : Général » Récupération de Données suite à un crash de windows » 02/01/2009 14:11:14

J'ai un message d'erreur lors de la connexion du style
"Vérifiez que le serveur qu'il est bien démarré , qu'il est en écoute sur le port 5432 et qu'il accepte des connexions sur ce port"

#44 Général » Récupération de Données suite à un crash de windows » 02/01/2009 10:58:46

zied
Réponses : 10

Bonne année à tous

Suite à un crash de windows, je n'ai pas de solution que de reformater mon disque dur.
Actuellement, je ne l'ai pas encore fait. J'ai mis le hd en slave pour essayer de récupérer mes données.
Puis- je récupérer mes BD pg en récupérant des fichiers et en les mettant sous un autre serveur PG dans un autre PC?  J'ai essayé en récupérant le répertoire Postgreql\8.3\data mais ça ne marche pas!
Y'a-t-il une procédure à suivre?

Merci c'est important

#46 Re : Général » Création et manipulation d'une structure arborescente » 18/12/2008 11:29:51

J'ai déjà lu cet article mais j pense que c'est insuffusant
car je peux avoir plusieurs arbres dans la même table qui ont des sous arbres en commun:
A_____
            |__B
            |__C
            |__D
            |__E__
            |        |__F
            |        |__G
            |        |__H
            |
            |__I__
                      |
                      |__ J
                      |__K__
                      |__L   |_M
                                |_N
                                |_O

A1_____
            |__B1
            |__C1
            |__D1
            |__E__
            |        |__F
            |        |__G
            |        |__H
            | ....

#47 Re : PL/pgSQL » Procédure Stockée et Retour de résultats » 18/12/2008 11:25:52

Suite du post Précédent :
2 - cas d'une  procédure SQL




CREATE OR REPLACE FUNCTION _1nommultiniveaux3(integer)
  RETURNS SETOF record AS
$BODY$




SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 2 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
           FROM "NOMENCLATURE"
          WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
                   FROM "NOMENCLATURE" where
                  ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)))))
UNION
SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 1 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
           FROM "NOMENCLATURE"
          WHERE ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)))
UNION
SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 0 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)
  ORDER BY 3;
 




$BODY$
  LANGUAGE 'sql' VOLATILE
  COST 100
  ROWS 1000;

J'obtiens un résultat avec des tuples de ce type :

"(1,,0)"
"(2,1,1)"
"(3,1,1)"
"(4,2,2)"

Comment faire pour avoir des colonnes séparées?
Merci

#48 Re : PL/pgSQL » Procédure Stockée et Retour de résultats » 18/12/2008 11:22:43

Bonjour
Merci à tous.
Je vais continuer ma question en 2 fois : Un post pour la cas de PL/PgSQL car je veux comprendre le principe.
Un autre pour le cas d'une procédure SQL. Je veux affiner le type de résultat

1 - PLSQL

J'ai utilisé RETURN QUERY :

CREATE OR REPLACE FUNCTION _1nommultiniveaux2(integer)
  RETURNS SETOF record AS
$BODY$


BEGIN
return query(
SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 2 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
           FROM "NOMENCLATURE"
          WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
                   FROM "NOMENCLATURE" where
                  ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)))))
UNION
SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 1 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
           FROM "NOMENCLATURE"
          WHERE ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)))
UNION
SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 0 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)
  ORDER BY 3);
RETURN;

END

$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100
  ROWS 1000;

En exécutant
select _1nommultiniveaux2(1);

Le résultat est le suivant :


ERREUR: la fonction avec set-value a été appelé dans un contexte qui n'accepte pas
un ensemble
État SQL :0A000
Contexte : PL/pgSQL function "_1nommultiniveaux2" line 4 at RETURN QUERY




Avez vous une idée?

#49 PL/pgSQL » Procédure Stockée et Retour de résultats » 17/12/2008 18:40:54

zied
Réponses : 7

Bonjour
J'ai écrit la procédure stockée suivante :

DROP FUNCTION _1NomMultiNiveaux2(integer);

CREATE OR REPLACE FUNCTION _1NomMultiNiveaux2(integer)
RETURNS record AS
$BODY$

BEGIN

SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 2 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
           FROM "NOMENCLATURE"
          WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
                   FROM "NOMENCLATURE" where
                  ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)))))
UNION
SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 1 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IN ( SELECT "NOMENCLATURE"."NMC_ID"
           FROM "NOMENCLATURE"
          WHERE ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)))
UNION
SELECT "NOMENCLATURE"."NMC_ID", "NOMENCLATURE"."NMC_PERE", 0 AS niv
   FROM "NOMENCLATURE"
  WHERE ("NOMENCLATURE"."NMC_PERE" IS NULL) and ("NOMENCLATURE"."NMC_ID"=$1)
  ORDER BY 3;

END

$BODY$
  LANGUAGE 'plpgsql'
  COST 100;

quand j'exécute la requête suivante :

select _1nommultiniveaux2(1);

J'ai le message d'erreur suivant :

ERREUR:  query has no destination for result data
ASTUCE : If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXTE : PL/pgSQL function "_1nommultiniveaux2" line 4 at SQL statement

Comment je fais pour que la procédure retourne les enregistrements demandés?
Merci

#50 Général » Création et manipulation d'une structure arborescente » 17/12/2008 16:10:41

zied
Réponses : 3

Je traille sur une sorte de mini ERP. J'ai besoin de modéliser une structure d'un arbre à nombre de niveau indéni
A_____
            |__B
            |__C
            |__D
            |__E__
            |        |__F
            |        |__G
            |        |__H
            | 
            |__I__
                      |
                      |__ J
                      |__K__
                      |__L   |_M
                                |_N
                                |_O
     
Quelle est la structure des tables à adopter?
Comment à partir d'un élément ajouter un fils au niveau inférieur?
Comment à partir d'un élément connaitre le niveau supérieur?
Comment à partir d'un élément connaitre le niveau inférieur? tous les niveaux inférieurs?
Merci

Pied de page des forums

Propulsé par FluxBB