Bonjour,
Est-il possible de faire un query sur un fichier spool avec une requête sql
si oui auriez-vous un exemple simple d'écriture du query
Merci
Bonjour,
Est-il possible de faire un query sur un fichier spool avec une requête sql
si oui auriez-vous un exemple simple d'écriture du query
Merci
Les fichiers spools ne sont pas attaquables par SQL car ce ne sont pas des fichiers DB2.
On peut toujours copier le spool dans un fichier DB2 avec la commande CPYSPLF et ensuite attaquer le fichier en le découpant ensuite en fonction des données présentes (si ces données sont structurées correctement dans le spool), mais il faut rester prudent quand à l'exploitation correcte des données (zones numériques, sauts de pages...).
Super merci pour ta réponse
Donc il est possible de faire un select sur un fichier qui a des colonnes si oui comment écrire la select comment lui indiquer le chemin de mon fichier aurais-tu un ptit exemple simple à me montrer stp
merci
Bonjour Iva30,
Je viens d'essayer un query sur un fichier celui-ci à été généré par un spool et copié par CPYSPLF mais il y a un problème car il n'y a qu'une colonne dans mon fichier comment puis-je le découper en x colonnes comme tu me la indiqué dans ton dernier message dans l'état actuel il n'est pas utilisable en query.
Select SUBSTR(Spool, 1, 10) as NOM, SUBSTR(11, 20) as Prenom etc....
Merci mais le select je le fait sur le spool ou sur le fichier copier par cpysplf
Je te donne le détail du fichier résultant du cpysplf :
Le nom du fichier :listeuser
La librairie :mabib
Je veux découper mon fichier de la facon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Display Data Data width . . . . . . : 150 Position to line . . . . . Shift to column . . . . . . ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.... LISTEUSER 5722SS1 V5R4M0 060210 Work with Active Jobs Reset . . . . . . . . . . . . . . . . . : *NO Subsystems . . . . . . . . . . . . . . : QINTER CPU Percent Limit . . . . . . . . . . . : *NONE Response Time Limit . . . . . . . . . . : *NONE Sequence . . . . . . . . . . . . . . . : *SBS Job name . . . . . . . . . . . . . . . : *ALL CPU % . . . : 3.2 Elapsed time . . . . . . . : 00:15:33 Current ------ Subsystem/Job User Number User Type Pool Pty CPU Int QINTER QSYS 519455 QSYS SBS 2 0 .2 DSxxxxxxx1 DFDF 519558 DFDF INT 4 20 .0 0 DSxxxxxxx2 POIF 519565 POIF INT 4 20 .1 41 DSxxxxxxx3 SDSSD 519649 SDSSD INT 4 20 .1 0 DSxxxxxxx4 FDFFG 519643 FDFFG INT 4 20 .0 4 QPxxxxxxx5 GGGRT 519470 GGGRT INT 4 20 6.4 39
Les lignes suivantes doivent être supprimées :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Subsystem/Job | User | Number | Current User | Type SBS | Pool | Pty | CPU | Int
Merci pour ton aide et bonne soirée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 5722SS1 V5R4M0 060210 Work with Active Jobs Reset . . . . . . . . . . . . . . . . . : *NO Subsystems . . . . . . . . . . . . . . : QINTER CPU Percent Limit . . . . . . . . . . . : *NONE Response Time Limit . . . . . . . . . . : *NONE Sequence . . . . . . . . . . . . . . . : *SBS Job name . . . . . . . . . . . . . . . : *ALL CPU % . . . : 3.2 Elapsed time . . . . . . . : 00:15:33 Current ------
bonjour,
tu peut lors de la copie du spool le faire a partir de la ligne x (f4 pour aide)
cpyf file/bib file/bib (destination) indiquer a copie depuis numero enreg
le nombre de ligne que tu veut supprimer.
ainsi tu n'auras plus que les données
a plus
roger
Bonjour et merci,
Je suis ok pour supprimer les données mais ça ne résous pas le faite que je dois découper mon fichier en colonne de la façon suivante:
Comment écrire le select avec ces paramètres comme indiqué dans le message de K2R400.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Subsystem/Job | User | Number | Current User | Type SBS | Pool | Pty | CPU | Int
Ou dois-je mettre le nom de mon fichier et la lib,pourrais-tu me donner un exemple d'écriture du select avec le nom de mon fichier ma lib et éventuellement le nom de ma colonne(il n'y en a qu'une LISTEUSER) et le nom de mes nouvelles colonnes etc....
Code : Sélectionner tout - Visualiser dans une fenêtre à part Select SUBSTR(Spool, 1, 10) as NOM, SUBSTR(11, 20) as Prenom etc....
Merci beaucoup
Ok j'y suis arrivé bouah la galère...
Par contre y a t-il une possibilité de mettre des blanc devant le nom des nouvelles colonnes pour me permettre de les cadrées exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT substr(macolone, 1, 13) as UserJob, substr(newcolone, 14, 21) as User from mabib/monfic
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT substr(macolone, 1, 13) as ' UserJob', substr(newcolone, 14, 21) as ' User' from mabib/monfic
Bon pour les blancs c'est ok il faut juste mettre le nom de la colone entre des doubles cotes " macolone"
Comment puis-je créer un nouveau fichier à partir de ce select es-ce possible avec le cpyf ou bien faut-il passer par une requête sql create table
comment faire?????
Pour info j'ai réussi à le faire à partir d'un create table s'il y a une autre possibilité je suis preneur
Merci
Bonjour,
lorsque tu ouvre sql fait F13 option 1 tu obtiens une serie de paramètres qui te permettent de creer un fichier de sortie.
et sur l'instruction select il faut ecrire dans le fichier de sortie par l'option insert into mabib /monfic
attention ta session va conserver les parammètres, il faudra penser a les changer.!!!!!!
a plus
Roger
Ouai nickel pour l'interactif mais comment faire la même chose en ligne de commande ou batch
comment faire la même chose en ligne de commande ou batch
Code : Sélectionner tout - Visualiser dans une fenêtre à part Create table mabib/matable2 as (select * from mabib/matable1) with data
Bonjour,
Merci Mercure je suis d'accord avec ta solution mais j'aimerai mettre en œuvre la solution de l'INSERT INTO proposé par Rcordonnier
L'insert me renvoi le message suivant à chaque fois je ne vois pas l'erreur auriez-vous une idée merci d'avance
Ci-joint le messag d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO MaBib/NewFic SELECT SUBSTR(LISTEUSER,1,13) AS " UserJob ",SUBSTR(LISTEUSER,14,21) AS " User " FROM MaBib/MonFic
NewFic in MaBib type *FILE not found.
Bon j'ai fait une autre tentative mais j'ai un autre pb maintenant
1/ J'ai créer mon fichier NewFic avant par la commande suivante:
J'ai relancé ma requête et la j'ai un autre message:
Code : Sélectionner tout - Visualiser dans une fenêtre à part CRTPF FILE(MaBib/NewFic) RCDLEN(8192) MAXMBRS(*NOMAX)
Ouah je m'arrache les cheveux la galère HELP HELP!!!!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part Statement contains wrong number of values.
bonjour
je ne sais pas si je me suis correctement exprimé mais quand je dis
mabib newfic il s'agit bien sur des noms fictifs il faut donner a ton programme
les vrais noms de ta bibliothèque et de ton fichier.
a plus
roger
Slt Roger,
Si je pense avoir bien compris j'ai bien mis les bon noms mais patatraccccccccccccccccKKKKKK
hier j'ai fait le même insert et pas de pb mais la ca ne passe plus j'ai certainement modifier quelque chose mais quoi je ne trouve pas ou ca cloche
Roger,
Lorsque je passe ma requête avec un seul substr la il n'y a pas de pb c'est lorsque je met les deux dans l'insert qu'il y a le pb y a t-il une protection qui manquerait du genre ( ou autre
Tu as créés un fichier avec une seule zone , et tu essayes d'en insérer 2 par ton Insert Into !!!
Ça fonctionne quand tu fais un seul Substr car tu ne charges qu'une seule zone.....
Tiu dois donc (si tu veux prédéfinir ton fichier) le créer soit à partir d'une requête SQL (CREATE TABLE) soit à partir d'un source DDS, et définir dans les 2 cas , toutes les zones que tu vas alimenter par ton INSERT INTO
bonjour,
je pense voir l'erreur, mabib et newfic sont des noms que je donne pour exemple il faut bien entendu indiquer les noms reels de ton exploitation.
a plus
roger
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager