Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > z/OS
z/OS Forum d'entraide sur z/OS et MVS (Multiple Virtual Storage), les systèmes d'exploitation des ordinateurs « mainframes » IBM : JCL, Tso, Ispf, Vsam, Racf, SMS, Cics, Ims, OPC, Ca-7, Control-M, Dialog Manager ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 28/09/2009, 13h35   #1
Membre du Club
 
Inscription : novembre 2006
Messages : 141
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 141
Points : 55
Points : 55
Par défaut requête qui ce termine en abend S322

Bonjour,

J'ai une requête qui ce termine en abend S322 la requête est:

SELECT A.L_VAL_MLE,
B.L_VAL_UQ_MLE,
B.L_VAR_RIB1,
C.NSGE,
C.TYPE,
C.NCPT,
C.CLECPT
FROM LAH.TBA00LAH A,
CHA.TBA22CHA B,
TRE.TB006TRE C
WHERE A.L_VAL_MLE = B.L_VAL_UQ_MLE
AND SUBSTR(B.L_VAR_RIB1,1,5) = CHAR(C.NSGE)
AND SUBSTR(B.L_VAR_RIB1,6,3) = CHAR(C.TYPE)
AND SUBSTR(B.L_VAR_RIB1,9,6) = CHAR(C.NCPT)
AND SUBSTR(B.L_VAR_RIB1,15,2) = C.CLECPT ;

Pour faire la concaténation est ce que il existe que la fonction CONCAT ou bien il y a une autre méthode pour re-écrire d’une autre façon

J’ai utilisé 2 méthodes pour exécuter mais toujours en abend :

Avec JCL et avec QMF(Query Management Facility)

Dernière modification par a_karim_fr ; 28/09/2009 à 15h00.
a_karim_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2009, 10h36   #2
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 477
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : octobre 2006
Messages : 477
Points : 657
Points : 657
Bonjour

Quelque soit l'outil utilisé, une requete sera identique question performance.

Ton problème ne vient pas de l'outil utilisé, mais de la requête.

1) pour commencer, je remplacerai les lignes
Code :
1
2
3
AND SUBSTR(B.L_VAR_RIB1,1,5) = CHAR(C.NSGE)
AND SUBSTR(B.L_VAR_RIB1,6,3) = CHAR(C.TYPE)
AND SUBSTR(B.L_VAR_RIB1,9,6) = CHAR(C.NCPT)
par
Code :
1
2
3
4
AND DEC(SUBSTR(B.L_VAR_RIB1,1,5)) = C.NSGE
AND DEC(SUBSTR(B.L_VAR_RIB1,6,3)) = C.TYPE
AND DEC(SUBSTR(B.L_VAR_RIB1,9,6)) = C.NCPT
surtout si les colonnes de droite sont dans l'index de la table.

2) ensuite, il faut vérifier que les colonnes d'index soient bien utilisées.

bonne journée.

ps: pour les questions DB2, utilise plutôt le forum db2.
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 18h31.


 
 
 
 
Partenaires

Hébergement Web