Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 19/09/2019 12:27:46
- tbeghain
- Membre
Conversion de script SQL*Plus Oracle vers Postgres
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
Hors ligne
#2 20/09/2019 08:11:04
- Marc Cousin
- Membre
Re : Conversion de script SQL*Plus Oracle vers Postgres
Tout ça est dans la doc de psql... https://www.postgresql.org/docs/current/app-psql.html
Je ne me rappelle plus de ce à quoi correspondent tous ces paramètres, mais une bonne partie a des équivalents...
Par exemple,WHENEVER SQLERROR EXIT 1 correspond à \set ON_ERROR_STOP on, HEADING OFF à \pset tuples only, PAGESIZE 0 doit correspondre à \pset pager off
Vous n'aurez je pense pas à toucher à LINESIZE (psql ne tronque pas les enregistrements par défaut). Pour le reste, je ne me souviens plus trop.
Marc.
Hors ligne
#3 20/09/2019 10:49:57
- tbeghain
- Membre
Re : Conversion de script SQL*Plus Oracle vers Postgres
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
Hors ligne
#4 20/09/2019 11:22:34
- Marc Cousin
- Membre
Re : Conversion de script SQL*Plus Oracle vers Postgres
il vous faut
\pset quiet on
au début du script
Marc.
Hors ligne
#5 20/09/2019 11:34:20
- tbeghain
- Membre
Re : Conversion de script SQL*Plus Oracle vers Postgres
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
Hors ligne
#6 20/09/2019 11:38:16
- Marc Cousin
- Membre
Re : Conversion de script SQL*Plus Oracle vers Postgres
Oups,
\set QUIET on
Marc.
Hors ligne
#7 20/09/2019 11:56:56
- tbeghain
- Membre
Re : Conversion de script SQL*Plus Oracle vers Postgres
oui, ça marche beaucoup mieux. Merci
Hors ligne
Pages : 1