Vous n'êtes pas identifié(e).
Allo! il y a qq1 au bout du fil?
Merci.
En supposant avoir l'espace nécessaire sur le serveur. comment puis-je faire un pg_dump avec php?
Merci
L'objectif est d'exécuter cette requête à travers un script PHP.
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
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
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.
pg_dump existe bien dans le m^me répertoire.
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.
???????????
Bonjour
Moi ça m'intéresserait de connaitre s'il y a un moyen d'automatiser cette tache quotidiennement.
Merci
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);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?
Dans quel fichier je peux les retrouver?
Help please
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
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.
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?
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"
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
Merci ça marche très bien.
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
| ....
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
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?
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
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