12 janvier 2017

BMQ-BBAD0015-ERREUR D'ACCES (TABLE RELATIONNELLE) : S1/42/DG/PREPARE/000000000000907

Michel m'indique que la subbn (Unix/Linux) perd les espaces au début des lignes données en parametre pour construire l'ordre SQL de sélection des dossiers.
Ce qui peut provoquer une erreur en "collant" deux termes initialement séparés.

Exemple avec un HRAccess Suite 9 :


                                    Phase BN

Sélection SQL de la population :
SELECT NUDOSS FROM ZD00 WHERE CDSTCO='XXX' and CDCODE IN ('A','B','CDE') AND
 IDGPRG=1000
                                    Phase BN

Rappel des paramètres saisis :

PA42SELECT NUDOSS FROM ZD00 WHERE CDSTCO='XXX' AND CDCODE IN ('A','B','CDE') AND
PA42IDGPRG=1000

Nom du Compte-Rendu d'exécution : TYBXBN.hr9ass



                Soumettre le job (Y/N/T) [N] ? t

*****************************************************************
*              Constitution d'une population batch              *
*****************************************************************


JOB : JRBN                            DATE : 2017/01/12 16:32:15


*-------------------------- STEP120N ---------------------------*
*              Constitution d'une population batch              *
*---------------------------------------------------------------*
*GE01BMP-BBAD0001-------------------------------------------------------------------------------------------------------
*GE01BMP-BBAD0002-IDENTIFICATION DU PROGRAMME : BMP/7.000/2013-04-22-15.16.25/F/
*GE01BMP-BBAD0003-DEBUT DE TRAITEMENT   - HORODATAGE DE DEBUT : 2017-01-12-16.32.16
*ST01BMQ-BBAD0001-------------------------------------------------------------------------------------------------------
*ST01BMQ-BBAD0002-IDENTIFICATION DU PROGRAMME : BMQ/7.000/2014-09-10-16.57.51/F/

*ST01BMQ-BBAD0015-ERREUR D'ACCES (TABLE RELATIONNELLE) : S1/42/DG/PREPARE/000000000000907
SELECT NUDOSS FROM HR.ZD00 BMQ WHERE ( CDSTCO='XXX' AND CDCODE IN ('A','B','CDE') ANDIDGPRG=1000) 


Pour éviter cela, il est possible de modifier la variable IFS servant à indiquer au système les caractères séparateurs :


ZOPA42="XX"
IFSSVG=$IFS
IFS=''
echo "${L_ZOPA42} :"
while [ "$ZOPA42" ]
do
   read ZOPA42
   if [ "$ZOPA42"  ]
   then
      PA=1
      ZOPA42=`echo "$ZOPA42" | cut -c1-76 | $SIGACS/bin/tras "[a-z]" "[A-Z]"`
      echo PA42"$ZOPA42" >> $TMP/T120PA.$nupro
   else
      if [ $PA -eq 0 ] ; then exit; fi
   fi
done
clear
IFS=$IFSSVG
unset IFSSVG




Aucun commentaire:

Enregistrer un commentaire