Rechercher : dans
Par :

Problème shell avec code retour sql

Dernière réponse le 19 fév 2008 à 12:13:22 fredbat, le 14 sep 2007 à 11:01:20 
 Signaler ce message aux modérateurs

Bonjour

je dois faire un script shell qui fait acces à une base oracle via sqlplus


comme suit


DSN=${BDB}_rept/${BDB}_rept@${ORACLE_SID}
SQL="sqlplus -s ${DSN}"
$SQL @/dimdata/scripts/recherche_baseline.sql "STIME_SO_67" > /tmp/recherche_baseline.out2
RC=$?
echo "RC= $RC"
if [ $RC != "0" ] ; then
echo "Erreur lors de l'exécution de la procédure SQL recherche_baseline NOM_DM : "
fi


mon sql est le suivant

SET VERIFY OFF FEEDBACK OFF TERMOUT OFF ECHO OFF LINESIZE 500 PAGESIZE 0
SET EMBEDDED OFF HEADING OFF
SET TERMOUT ON

WHENEVER SQLERROR EXIT SQL.SQLCODE

SELECT PCMS_ATTRIBUTES_CHDOC.BASELINE||' '
FROM TEST.PCMS_ATTRIBUTES_CHDOC PCMS_ATTRIBUTES_CHDOC, TEST.PCMS_CHDOC_DATA PCMS_CHDOC_DATA
WHERE PCMS_ATTRIBUTES_CHDOC.CH_UID = PCMS_CHDOC_DATA.CH_UID AND ((PCMS_CHDOC_DATA.CH_DOC_ID='&1'))
;

exit SQL.SQLCODE;


mais quand je test mon code retour RC est toujours égal à 0

pourriez vous m'aider

merci d'avance

Configuration: unix aix 
oracle 9

Meilleures réponses pour « problème shell avec code retour sql » dans :
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...

1

dubcek, le 14 sep 2007 à 12:21:46
  • +1

Hi
il faut faire un test numérique : if [ $RC -ne 0 ] ; then

Répondre à dubcek

2

jipicy, le 14 sep 2007 à 12:22:59

Salut,

Question c*n...
Est-ce que la commande seule génère des erreurs au moins ?

Sinon une piste peut être avec cette dernière ligne de ta requête SQL :
exit SQL.SQLCODE;

Essaie de remplacer le SQLSQLCODE par un un chiffre quelconque (enfin si possible, je connais rien à SQL) et re-teste ton script...

;-)) Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

3

 waga, le 19 fév 2008 à 12:13:22

Bonjour,

En fait le sqlplus s'execute bien donc le resultat est 0.
Je pense que le résultat sera différent de 0 si tu as une erreur de syntaxe dans ton script PL SQL, et donc que tes commandes oracle ne sont pas correcte.

Répondre à waga