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

#1 Re : Général » Passage de paramètre dynamique dans le Crosstab? » 09/10/2018 17:05:34

Ok je vais bosser dessus et revoir mon code sql si possible.


Merci

#2 Re : Général » Passage de paramètre dynamique dans le Crosstab? » 09/10/2018 16:22:19

Erreur de syntaxe:


Caused by: org.postgresql.util.PSQLException: ERROR: Argument of AND must have type boolean, not type sh.invoice

Même avec les parathèse

concat($$ SELECT ... WHERE to_char(DateAcct,'YYYY') = $$ , $P{YEAR}, $$  ORDER BY ... $$
                     AND (Customer_ID= $$ , $P{Customer_ID} , $$ OR $$ ,$P{Customer_ID} IS NULL , $$) ORDER BY ... $$)
 

Cordialement,

#3 Re : Général » Passage de paramètre dynamique dans le Crosstab? » 09/10/2018 14:29:34

dverite a écrit :

Le problème est que si $P{Customer_ID} se présente comme une chaîne vide, le résultat SQL va ressembler à
...Customer_ID = OR IS NULL...
ce qui est syntaxiquement doublement faux du point de vue de l'interpréteur SQL.

Mais est-ce que c'est ça qui se produit? Par quoi exactement $P{Customer_ID}  est remplacé?
Par '' (chaîne vide mais litéral SQL valide)?
Par rien du tout?
Par le mot-clef NULL?

Salut @dverite,


D'après ma compréhension mon parametre $P{Customer_ID} doit être remplacé par NULL.
Cmt je pourai donc l'écrire stp??


C'est vraiment la première fois que je suis confronté à ce type de problème.


Merci pr ton assistance.

#4 Re : Général » Passage de paramètre dynamique dans le Crosstab? » 09/10/2018 11:40:53

dverite a écrit :

Du point de vue du SQL toute la partie entre $$ et $$ est une chaîne de caractères en dur. S'il y  un paramètre $P{YEAR} il est doit être interprété par l'outil côté client et sa valeur doit être injectée dans la chaîne avant de la passer au moteur SQL.


Au vu de l'erreur ce n'est pas comme ça que l'outil procède, il semble vouloir un "vrai" paramètre au sens des requêtes paramétrées au niveau SQL.


Il est possible d'en faire un vrai paramètre mais il faudrait le sortir de la chaîne litérale et la découper en 3 parties avec un syntaxe du style:

concat($$ SELECT ... WHERE to_char(DateAcct,'YYYY') = $$ , $P{YEAR}, $$ ORDER BY ... $$)

Salut,
Encore un peu coincé. J'essais de gérer un paramètre optionnel $P{Customer_ID} avec la même procédure et je n'y arrive pas.
Du genre AND Customer_ID= $P{Customer_ID} OR $P{Customer_ID}  IS NULL

concat($$ SELECT ... WHERE to_char(DateAcct,'YYYY') = $$ , $P{YEAR}, $$  ORDER BY ... $$
                     AND Customer_ID= $$ , $P{Customer_ID} , $$ OR $$ ,$P{Customer_ID} IS NULL , $$ ORDER BY ... $$)

Une idée svp ?


Cordialement

#6 Général » Passage de paramètre dynamique dans le Crosstab? » 24/09/2018 15:05:05

Douk V5
Réponses : 9

Salut,

J'ai un souci. Ma requête fonction très bien quand la valeur de mon param est passé en dûr mais me renvoie cette erreur
quand je place le paramètre pour la dynamiser.

C vrai que suis dans un outil de reporting(JasperReports) donc je suis un peu habitué.


L'indice de la colonne est hors limite : 5, nombre de colonnes : 4.

Le probleme viens de là.


Juste le squelette du SQL


SELECT
....
FROM CROSSTAB (
$$ SELECT 
...
FROM sh.invoice
WHERE
to_char(DateAcct,'YYYY') =$P{YEAR}
ORDER by invoice_id $$,
...

Comment le resoudre svp?



Cordialement,
Douk V5

#7 Re : Général » How to upgrade my pg_dump version? » 20/09/2016 14:50:44

Désolé!


En voulant  faire le backup avec pg_dump, j'ai eu ce message.

pg_dump: server version: 9.4.5; pg_dump version: 9.3.14
pg_dump: aborting because of server version mismatch

Comment je resoud le problème?


@gleu
comment je fait pour passer de la version 3 à 4?


Cordilement,

#8 Général » How to upgrade my pg_dump version? » 20/09/2016 12:16:06

Douk V5
Réponses : 1

Hi


I have this message when I trying to backup with pg_dump command.

pg_dump: server version: 9.4.5; pg_dump version: 9.3.14
pg_dump: aborting because of server version mismatch

How can I resolve it?

#9 Général » How to upgrade my pg_dump version? » 20/09/2016 12:16:04

Douk V5
Réponses : 3

Hi


I have this message when I trying to backup with pg_dump command.

pg_dump: server version: 9.4.5; pg_dump version: 9.3.14
pg_dump: aborting because of server version mismatch

How can I resolve it?

#10 Re : Général » Script BACKUP BD Online to Local » 15/09/2016 16:15:11

@ruizsebastien


Merci. Justement je suis sur un evironement linux.
Je teste.

#11 Re : Général » Script BACKUP BD Online to Local » 15/09/2016 16:10:14

@rjuju


En fait comme j'ai signalé dans le dernier post, je dois pouvoir recupérer le dernier backup du serveur distant et faire le MAJ de la BD du serveur local.
Un scrpit backup s'exécute tous les jours sur le serveur distant et enregistre les different backup dans un repertoire.

Mais comment je fait pr recupérer le dernier?

#12 Re : Général » Script BACKUP BD Online to Local » 14/09/2016 16:31:50

@ruizsebastien
@rjuju


Merci grandement de votre assistance et de ces liens qui m'ont permi de comprndre beaucoup de chose.

Voilà qu'après plusieurs dialogues avec mon maitre de stage de l'entreprise ou je me trouve actuelm, des choses sont redéfinit d'après ce que je comprenait avant.


Le point à ressoudre est le suivante:

   - Un sript backup s'excécute déjà sur le serveur distant de l'entreprise qui sauvegarde tous les jours un backup de la BD dans un repertoire,

Ce qu'il me demande de faire actulement c'est d'écrire un script que lorsque l'administrateur l'exécute, il va récupérer le dernier backup et met à jour la BD du serveur local.

Comment je fait? surtout comment pouvoir recuperer le dernier backup?

J'attend une solution svp. roll roll


Cordialement,

#13 Re : Général » Script BACKUP BD Online to Local » 07/09/2016 18:21:00

@Cheikhou Fofana


Merci pour l'assistance. Je dois chercher à comprendre rapidement le concept  sous PostgreSQL.
Car resoudre ce problème pour moi est primordiale


Cordialement,

#14 Re : Général » Script BACKUP BD Online to Local » 07/09/2016 17:46:29

@Cheikhou Fofana


Merci pour l'assistance. Je dois chercher à comprendre rapidement le concept  sous PostgreSQL.
Car resoudre ce problème pour moi est primordiale


Cordialement,

#15 Re : Général » Script BACKUP BD Online to Local » 07/09/2016 17:04:52

@ruizsebastien


Merci pour ta reponse. je vais essayé
Pour le moment ma base distante n'est pas trop volumineuse mais elle évolue rapidement avec le temps.

#16 Re : Général » Script BACKUP BD Online to Local » 07/09/2016 16:18:51

@rjuju

Oui quel soit une image de la base distante.

Stp quel différence y'a t-il entre les 2 concepts "image" et "écrire sur la base"?

#17 Re : Général » Script BACKUP BD Online to Local » 07/09/2016 12:56:09

@rjuju

Je ne sais pas trop si le terme "réplication" est le bon mieux ou pas? Je m'explique d'une manière très simple.

J'ai une BD qui tourne sur un serveur distant avec laquel je travail plus et une copy de la même BD sur mon serveur local .

Ceci étant, je  voudrai que ma BD local soit une copie conforme de ma BD distante à des périodes définit(exple après 24h).

#18 Re : Général » Script BACKUP BD Online to Local » 07/09/2016 11:23:12

@rjuju


"mise à jour de l'autre BD"


Je fait allusion à la BD en local.

D'une autre mamière peut être je ne suis clair, Je veux pouvoir actualiser automatiquement ma BD en local partant de la BD Online ou du moins d'une autre BD.

#19 Re : Général » Script BACKUP BD Online to Local » 07/09/2016 10:18:49

@rjuju


Le plus difficile c'est que je ne sais comment faire.

Est-ce-que tu (quelqu'un) peux au moins m'expluquer les différents challenges?? Surtout au niveau de la mise à jour de l'autre BD. Parce que c'est que je ne comprend pas dutou comment sa doit se passer.

Je sais faire du backup/restore avec du psql. Mais là cette tâche est une première et d'une grande importance pour moi.

Je suis novice en la matière et je veut tout d'abord comprendre le principe.


Cordialement,

#20 Général » Script BACKUP BD Online to Local » 06/09/2016 18:05:35

Douk V5
Réponses : 20

Slt à tous.


Je veut réaliser un script qui fait le backup de ma BD OnLine et fait une mise à jour de la BD en local.

De l'aide svp.


J'utilse PostgreSql 9.4


Cordialement,

#21 Re : Général » fonction pour les mois » 01/08/2016 15:02:19

Douk V5 a écrit :

OK! Merci. Je reviendrai vers vous en cas de problème tongue tongue

#22 Re : Général » fonction pour les mois » 29/07/2016 17:26:40

Slt à tous,


En réfléchissant, j'ai tout bêtement écrit la fonction sql qui suit pour essayer de résoudre mon problème.
C'est vrai je ne l'ai pas encore testé dans ma requête. Mais je reste convaincu que je serai buté.
Quelqu'un aurai-t-il une .autre possibilité?  hmm hmm



Douk V5 a écrit :

CREATE OR REPLACE FUNCTION moisprecedent(mois text)
  RETURNS text AS
$$
  SELECT
    CASE when $1='Decembre' then 'Novembre'
             when $1='Novembre' then 'Octobre'
             when $1='Octobre'  then 'Septembre'
             when $1='Septembre' then 'Août'
             when $1='Août' then 'Juillet'
             when $1='Juillet' then 'Juin'
             when $1='Juin' then 'Mai'
             when $1='Mai' then 'Avril'
             when $1='Avril' then 'Mars'
             when $1='Mars' then 'Février' 
             when $1='Février' then 'Janvier' 
             when $1='Janvier' then 'Decembre'
     END as mois;
$$
  LANGUAGE sql;


Cordialement,

#23 Re : Général » fonction pour les mois » 26/07/2016 17:33:57

slt gleu,

En fait je sais que c'est avec le PL/pgsql que je doit le résoudre. Mais je voulais avoir la solution d'une personne puisque que je réfléchissait comment gérer sans solution. J'ai eu a solutionner quelque chose de ce genre dans mes précédent post.

Merci pour le lien. Je me lance encore.

Mais si quelqu'un a un lien qui a déjà résolu mon problème, je suis dans l'attente.

cdlt,

#24 Général » fonction pour les mois » 18/07/2016 12:20:20

Douk V5
Réponses : 5

slt à tous,


Quelqu'un peut-il m'aider svp?

je veux une fonction qui prend en paramètre un mois et me retourne le mois-1.


exple: PreviewMonth(juillet)   ==> me retourne "juin"


En effet je travaille avec Pentaho reporting et j'ai un paramettre mois qui me permet de faire un certain nombre de calcul.


Merci de venir en aide!

#25 Re : Général » Comment rendre une condition WHERE dynamique? » 07/06/2016 11:10:36

Slt,


Juste une réflexion et j'ai pu écrit ces petites fonctions qui solutionnent mon problème.

CREATE OR REPLACE FUNCTION FirstDayOfCurrentYear (year integer) RETURNS date as
$$
    SELECT ($1::integer||'-'||'01'||'-01')::date;
$$
LANGUAGE'sql';

CREATE OR REPLACE FUNCTION FirstDayOfPrecedentYear (year integer) RETURNS date as
$$
    SELECT ($1::integer - 1||'-'||'01'||'-01')::date;
$$
LANGUAGE'sql';

CREATE OR REPLACE FUNCTION CurrentDate_Of_CurrentYear (year integer) RETURNS date as
$$
   
    SELECT ($1::integer||'-'||EXTRACT(MONTH FROM current_date)||'-'||EXTRACT(DAY FROM current_date))::date;
$$
LANGUAGE'sql';

Etc.

Merci pour le temps mis à vouloir m'aider.

lol lol

Pied de page des forums

Propulsé par FluxBB