Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AS/400 Discussion :

Commande As400 dans une requete SQL via CL:


Sujet :

AS/400

  1. #1
    Membre à l'essai
    Commande As400 dans une requete SQL via CL:
    Bonjour

    il y a possibilité d'exécuter une commande AS/400 dans une requête SQL:
    Exemple
    cl:md dir('/home/ssi9/ds999999') ;
    cl: (SNDMSG MSG(' /Requete_ETM/DS000534/DS000534.CSV TERMINE ') TOMSGQ(ssi9);
    cl:CPYTOIMPF FROMFILE(Temp/DS999999) TOSTMF('/home/SSI9/Ds999999/DS999999.csv') MBROPT(*REPLACE) STMFCODPAG(*PCASCII) RCDDLM(*CRLF) STRDLM(*NONE) RMVBLANK(*BOTH) FLDDLM(';') DECPNT(*COMMA) ADDCOLNAM(*SQL);

    cl: CHGAUT OBJ('/home/SSI9/Ds999999/DS999999.csv') USER(*PUBLIC) DTAAUT(*RWX) OBJAUT(*ALL);


    Question:

    1°)Est il possible de monitorer l'exécution d'une commande comme dans un CLP (monmsg)?
    2°) connaissez vous des tutos ou forum traitant de ce sujet?

    merci de votre collaboration


    Pascal

  2. #2
    Membre averti
    Bonjour,

    Il est possible d'exécuter un call de programme dans une requête sql.
    pour preuve, fait strsql et tu fais le call d'un programme.

    Larry57

  3. #3
    Membre à l'essai
    Ca je sais,
    mais je préfèrerai exécuter des commandes dans le sql et pouvoir les monitorer.


    connais tu un site qui traite des commandes intégrées dans un SQL?

  4. #4
    Expert confirmé
    Bonjour.

    Essaie si tu peux trouver quelque chose qui pourrait t'aider dans l'infocenter, par exemple : https://www.ibm.com/support/knowledg...1/welcome.html

  5. #5
    Membre à l'essai
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Bonjour.

    Essaie si tu peux trouver quelque chose qui pourrait t'aider dans l'infocenter, par exemple : https://www.ibm.com/support/knowledg...1/welcome.html
    dans ce fatras d'informations , je trouve pas d'information concernant les commandes intégrées dans un sql. je ne trouve que le contraire.

    peux tu me guider un peu plus?

    Merci d'avance

  6. #6
    Membre éclairé
    Bonjour,

    J'avoue ne pas utiliser ce genre de "raccourci". J'utilise des procédures stockées.
    Mais je pense qu'à moins de pouvoir récupérer grâce aux codes d'erreur SQL, les erreurs générées par le CL, tu ne pourras pas trouver l'équivalent d'un MONMSG.
    En effet, ce n'est pas une commande batch (environnement permis *BATCH) à proprement parler, c'est juste une commande s'exécutant dans un programme (environnement permis *IPGM, *BPGM).
    Or ici on est pas dans un programme mais dans un script.

    Donc, à mon avis, même si je n'en ai pas une certitude absolue, si les codes d'erreur SQL ne te fournissent pas la solution, tu n'auras d'autre choix que de passer par l'appel d'un vrai programme CL(LE), qui exécutera tes commandes.
    Perso je ne me gratterais pas la tête, c'est cette option que je prendrais. Surtout que par rapport à ce que tu fais, c'est super simple. Tu prends toutes tes commandes commençant par cl:, tu les colles dans ton vrai CL, tu mets tes MONMSG avec le traitement adéquat, et dans ton SQL, tu n'as plus qu'à laisser une ligne avec cl: CALL MALIB/MONCL

###raw>template_hook.ano_emploi###