Problème shell avec code retour sql

fredbat -  
 waga -
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

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hi
    il faut faire un test numérique : if [ $RC -ne 0 ] ; then
    1
  2. waga
     
    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.
    1
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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...

    ;-))
    -1