|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() |
Encore bonjour, décidemment, j'ai pas mal de questions !!!
Je cherche à réaliser un INSERT SQL via un Step de JCL. J'ai utilisé l'utiltaire IKEFT01 mais il n'est pas installé ... Avez vous une solution à ce problème ? (autre que IKEFT01), j'utilise par exemple DSNUTILB pour les load, peut on s'en servir pour les INSERT et UPDATE ? Petite précision, en fait ce que je voudrais faire c'est insérer un enregistrement dans une table s'il n'existe pas, sinon, je voudrais le mettre à jour ... mais je ne vois pas trop comment coder ca en JCL (faire un select puis en fonction du code retour faire un insert ou update ?) Merci à vous.
__________________
« Ne me faites pas d'objections. Les difficultés en feront assez d'elles-mêmes. » sir Winston Churchill |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : février 2004 Messages : 502 ![]() |
T'es sur que c'est pas plutôt cet utilitaire : IKJEFT01
|
|
|
00
|
|
|
#3 | ||
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Sous MVS via JCL : de la même manière que tu utilises l'utilitaire LOAD par DSNUTILB pour faire tes chargements, tu peux utiliser l'utilitaire EXEC SQL.
Il se code de la sorte en SYSIN : Code jcl :
Attention cet utilitaire est utilisable uniquement avec ALTER, COMMIT, CREATE, DELETE, DROP, EXPLAIN, GRANT, INSERT. .
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
||
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
En y réfléchissant un peu, bof bof comme utilisation!
Que veux tu faire exactement, dans quel contexte ? Peut-être vaut-il mieux passer ta requête par programme ou bien via SPUFI ? .
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
|
00
|
|
|
#5 |
|
Membre régulier
![]() |
Pour utiliser certains batch de mon JCL, je dois inserer ou mettre à jour une ligne DB2 dans une table afin d'autoriser mon user et le nom de mon job à se lancer.
C'est pourquoi avant de lancer le step de mon batch, je dois vérifier et mettre à jour (ou ajouter) cette fameuse ligne ... Je préfère donc automatiser car le JCL est parametrable pour pouvoir le changer d'environnement à volonté (et donc de table DB2 !) En revanche, pour ton premier poste qui stipule que je peux utiliser celui du LOAD, les fichiers SYSREC00 et SYSPUNCH sont-ils utiles ?
__________________
« Ne me faites pas d'objections. Les difficultés en feront assez d'elles-mêmes. » sir Winston Churchill |
|
|
00
|
|
|
#6 | ||
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Il te suffit de ne conserver que la SYSPRINT pour vérifier le code SQL de ta requête dans ton compte rendu et la SYSIN elle même, soit:
Code jcl :
Les données contenu dans le paramètre PARM varient selon les normes du site. .
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
||
|
00
|
|
|
#7 |
|
Membre régulier
![]() |
C'est OK merci beaucoup !!
@+
__________________
« Ne me faites pas d'objections. Les difficultés en feront assez d'elles-mêmes. » sir Winston Churchill |
|
|
00
|
|
|
#8 | ||
|
Membre régulier
![]() |
Petite précision,
Comment réaliser certaines requete de manière conditionnelle , c'est à dire : Code :
__________________
« Ne me faites pas d'objections. Les difficultés en feront assez d'elles-mêmes. » sir Winston Churchill |
||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 098 ![]() |
|
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() |
Merci mais c'est justement ce que je veux éviter ... Y a t il moyen de la coder en JCL ?
__________________
« Ne me faites pas d'objections. Les difficultés en feront assez d'elles-mêmes. » sir Winston Churchill |
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Comme Luc... par programme.
.
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
|
00
|
|
|
#12 |
|
Membre régulier
![]() |
Tampi, merci à vous !
__________________
« Ne me faites pas d'objections. Les difficultés en feront assez d'elles-mêmes. » sir Winston Churchill |
|
|
00
|
|
|
#13 | ||
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 098 ![]() |
Allez ! ... la communauté des "mainframers" de DVP, peu nombreuse certes mais néanmoins vaillante, ne va pas rester sur un échec !
Voici la solution que je propose :
Concrètement ça donne quelque chose comme ça : Code :
Les activités exécutées sont ici fictives mais c'est juste pour tester ... Bien sûr il faut adapter ... Alors qui dit mieux ?
|
||
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Superbe dans la forme, dans le fond je pense que ce genre de cas ne se gère pas par JCL
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
|
00
|
|
|
#15 |
|
Membre régulier
![]() |
Impréssionné ....
Bon je vais tester et je vous tiens au courant
__________________
« Ne me faites pas d'objections. Les difficultés en feront assez d'elles-mêmes. » sir Winston Churchill |
|
|
00
|
|
|
#16 | ||||
|
Membre régulier
![]() |
Il semblerait que ICETOOL fonctionne pour diriger vers le step de mon choix (INSERT ou UPDATE) seulement, dans ces step, les requetes ne se font pas correctement, j'ai un abend -805 ...
Je ne sais pas d'où cela peut venir ! Code :
Code :
Merci
__________________
« Ne me faites pas d'objections. Les difficultés en feront assez d'elles-mêmes. » sir Winston Churchill |
||||
|
|
00
|
|
|
#17 | ||
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 098 ![]() |
Citation:
Citation:
j'espere que tu as codé ta propre requête quand même ... ... sinon on peut toujours passer par un DSNTEP2 ... |
||
|
|
00
|
|
|
#18 |
|
Membre régulier
![]() |
Je cherche de la doc sur DSNTEP2 ... je vous tiens au courant
Le message est rectifié mais j'avais effectivement codé ma requete ... les DSN et table n'étant pas les même, cela aurait été difficile !!
__________________
« Ne me faites pas d'objections. Les difficultés en feront assez d'elles-mêmes. » sir Winston Churchill |
|
|
00
|
|
|
#19 | ||
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 098 ![]() |
DSNTEP2 est un programme exemple fourni par IBM ("sample" en terminologie IBM) qui permet d'exécuter quasiment tout le SQL DB2 de manière dynamique.
Il est particulièrement utile en batch où il est utilisé à partir de l'interface TSO-Batch (le fameux IKJEFT01 i.e. le Terminal Monitor Program). C'est un programme écrit en PL/1 qui peut même être modifié par un programmeur connaissant ce langage. Voici un exemple de JCL (à adapter selon le site bien sûr ...) : Code :
Pour la doc ( DB2 V7 ) c'est ici : Running DSNTEP2 |
||
|
|
00
|
|
|
#20 |
|
Membre régulier
![]() |
Désolé pour le retard, je rentre de congés :-)
Ca semble me convenir, merci pour ces infos.
__________________
« Ne me faites pas d'objections. Les difficultés en feront assez d'elles-mêmes. » sir Winston Churchill |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com