Vous n'êtes pas identifié(e).
Pages : 1
Super, c'est carrément mieux ! On englobe le tout, et pis voila !!
SELECT CONCAT(CHD.CODE_APPLI,':',CHD.CH_DOC_TYPE,':',CHD.ORIGINATOR)
from PCMS_CHDOC_DATA CHD
where CHD.ORIGINATOR = :var1
;
ZZ:DM:TBEGHAIN
:EVOLDB:TBEGHAIN
:EVOLDB:TBEGHAIN
MU:URT:TBEGHAIN
:URT:TBEGHAIN
:URT:TBEGHAIN
Par contre, avec concat_ws, j'obtiens ça, et c'est moins bien car les null ne sont pas pris en compte.
Nous avons souvent des fichiers csv comme résultats de requête qui sont exportés dans Excel.
Dans ma requête exemple, avec concat, j'ai bien tous les séparateurs (:), alors que avec concat_ws, ce n'est pas forcément le cas.
ZZ:DM:TBEGHAIN
EVOLDB:TBEGHAIN
EVOLDB:TBEGHAIN
MU:URT:TBEGHAIN
URT:TBEGHAIN
URT:TBEGHAIN
Merci
Thierry
Pour Guillaume,
Oui, je le sais. Mais de toute façon, il faut que je modifie et teste tous les scripts systématiquement. Alors je verrai bien là où il faut le coalesce ou pas. Sans compter d'autres problèmes que je vais peut être rencontrer....
Pour Marc,
En fait, nous utilisons un progiciel qui utilise ORACLE comme base de données, et qui offre la possibilité de changer la base de données pour Postgres. Du coup, c'est leur procédure qui s'occupe de migrer les données d'un environnement vers un autre, et je ne sais pas quelle technique ils utilisent. Nous, on a développé des scripts autour, et ce sont ces scripts qu'il me faut modifier.
En tous cas, un grand merci à tous les deux
Thierry
Ah OK. Merci. Effectivement, si je rajoute coalesce, ça marche. Comme je dois migrer vers postgres, ça va m'obliger à revoir pas mal de sql, mais faut ce qu'il faut !
SELECT COALESCE(CHD.CODE_APPLI,' ')||':'||
CHD.CH_DOC_TYPE||':'||
CHD.ORIGINATOR
from PCMS_CHDOC_DATA CHD
where CHD.ORIGINATOR = :var1
;
ce qui donne
ZZ:DM:TBEGHAIN
:EVOLDB:TBEGHAIN
:EVOLDB:TBEGHAIN
MU:URT:TBEGHAIN
:URT:TBEGHAIN
:URT:TBEGHAIN
oui, ça marche beaucoup mieux. Merci
Bonjour,
Désolé, ça ne fonctionne pas. Voilà le .sql
/*
commentaire
*/
\pset quiet on
\pset tuples_only
\pset format unaligned
SELECT CHD.CODE_APPLI||':'||
CHD.CH_DOC_TYPE||':'||
CHD.ORIGINATOR
from PCMS_CHDOC_DATA CHD
where CHD.ORIGINATOR = :var1
;
et voilà le résultat
psql:tbe.sql:4: \pset : option inconnue : quiet
L'affichage des tuples seuls est activé.
Le format de sortie est unaligned.
psql:tbe.sql:4: \pset : option inconnue : quiet
Bonjour,
Je constate des différences entre une exécution avec sqlplus sur une base ORACLE et psql sur la même base, mais migrée sous Postgres. Voilà l'ordre SQL
SELECT CHD.CODE_APPLI||','||
CHD.CH_DOC_TYPE||','||
CHD.ORIGINATOR
from PCMS_CHDOC_DATA CHD
where CHD.ORIGINATOR = 'TBEGHAIN';
et voilà ce que ça donne avec sqlplus :
ZZ,DM,TBEGHAIN
,EVOLDB,TBEGHAIN
,EVOLDB,TBEGHAIN
MU,URT,TBEGHAIN
,URT,TBEGHAIN
,URT,TBEGHAIN
et avec psql
ZZ,DM,TBEGHAIN
MU,URT,TBEGHAIN
en fait, avec psql, comme la valeur de la première colonne est "null", il n''y a pas affichage du reste des colonnes, à la différence de sqlplus.
Est-ce qu'il y aurait un paramètre à positionner avec psql pour avoir le même comportement qu'avec sqlplus ?
Merci pour vos réponses
Ok, et merci. J'ai effectivement trouvé certains paramètres. Par contre, je me suis aperçu d'un truc. Lorsque j'utilise les commandes \pset directement dans le fichier .sql, après exécution, systématiquement, en entête j'ai les infos concernant mes deux commandes pset. Par exemple, si je mets
\pset tuples_only
\pset format unaligned
J'ai, en sortie, avant l'affichage des données, les deux lignes
L'affichage des tuples seuls est désactivé.
Le format de sortie est unaligned.
mes données resultat du SQL
MU,URT
Il y a moyen de les enlever ? On doit surement pouvoir le faire, mais je n'y suis pas arrivé.
Bon, c'est pas bien grave, parce que si je mets -t et -A après la commande psql (ce qui devrait faire la même chose finalement que \pset dans le .sql)
j'ai l'affichage de mes données sans les deux lignes.
Thierry
Bonjour,
J'ai des fichiers .sql qui tournent sur Oracle et qu'on me demande de transformer de façon à les utiliser avec une base PostgreSQL
En entête de ces fichiers, il y a tout un paramétrage apparemment propre à Oracle :
SET VERIFY OFF FEEDBACK OFF TERMOUT OFF ECHO OFF LINESIZE 600 PAGESIZE 0
SET EMBEDDED OFF HEADING OFF
SET TERMOUT ON
WHENEVER SQLERROR EXIT 1
WHENEVER OSERROR EXIT 2
J'aimerais savoir si, avec Postgres, il existe des paramètres équivalents, et si oui, où les trouver.
Merci pour vos réponses
Pages : 1