Vous n'êtes pas identifié(e).
Ok je vais bosser dessus et revoir mon code sql si possible.
Merci
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,
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.
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
Merci @dverite
Sa marche
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
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,
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?
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?
@ruizsebastien
Merci. Justement je suis sur un evironement linux.
Je teste.
@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?
@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.
Cordialement,
@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,
@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,
@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.
@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"?
@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).
@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.
@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,
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,
OK! Merci. Je reviendrai vers vous en cas de problème
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é?
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,
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,
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!
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.