Bonjour,
Je suis à la recherche d'un exemple de query avec une close select a l'intérieur.
Cette select doit être effectuée sur un fichier de type PF de ma bibliothèque comment l'écrire
Merci
Bonjour,
Je suis à la recherche d'un exemple de query avec une close select a l'intérieur.
Cette select doit être effectuée sur un fichier de type PF de ma bibliothèque comment l'écrire
Merci
Query et SQL sont 2 outils différents sur l'AS400.
Pour utiliser une clause select en sql :
STRSQL
Exemple 1:
SELECT * FROM mabib/mon fichier
Exemple 2:
SELECT mazone1, mazone2 FROM mabib/monfichier WHERE mazone1 = mavaleur
Exemple 3 :
SELECT DISTINCT(mazone) FROM mabib/momnfichier
Exemple 4:
SELECT mazone1, mazone2 FROM mabib/monfichier WHERE mazone 1 =mavaleur GROUP BY mazone 2 ORDER BY mazone 2
Attention à l'utilisation de SQL qui permet de saccager sa BDD assez facilement si on ne sait pas l'utiliser correctement. Mais avec la clause SELECT tu ne crains pas grand chose
Ben alors la super chouette je vais essayer de suite j'te tiens au courant
Je peut mettre le select dans un query c'est possible?
Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiii
Query est un utilitaire. Pour mettre des conditions il faut aller dans
"choisir les enregistrements" et renseigner zone,test et valeur.
Mais alors à quoi sert le query que peut-on faire avec???
Re Iva30
Ben j'ai essayé le select à partir de mon fichier PF
Si je fais le select suivant il me donne ce résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part > select * from mabib/essrqSi je fais le select suivant ca ne marche pas
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 Display Data Data width . . . . . . : 1247 Position to line . . . . . Shift to column . . . . . . ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+.... Display Display Display Library Object Object Object Storag Century Date Time Type Attribute Freed 1 080909 155407 QSYS £ *DEVD DSPVRT 0 1 080909 155407 QSYS ADMINCC *DEVD PRTLAN 0 1 080909 155407 QSYS AJKPOIO *DEVD PRTVRT 0 [....] 1 080909 155407 QSYS DSTFFPOP *DEVD DSPVRT 0 1 080909 155407 QSYS DSTULTZB1 *DEVD DSPVRT 0 More... F3=Exit F12=Cancel F19=Left F20=Right F21=Split
Column OBJECT not in specified tables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part > select Object from mabib/essrq
Je te donne les différentes manip qui mon permis de générer ce fichier:
Pour créer ce fichier j'ai exécuté la commande suivante
Le fichier Spool je l'ai copié dans le fichier essrq de mabib avec les commandes suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part DSPOBJD OBJ(*ALL) OBJTYPE(*DEVD) OUTPUT(*PRINT)
1/ Création de mon fichier
2/ Copie du Spool dans le fichier essrq préalablement créé
Code : Sélectionner tout - Visualiser dans une fenêtre à part CRTPF FILE(mabib/essrq) rcdlen(500)
Résultat de ma copie dans mabib:
Code : Sélectionner tout - Visualiser dans une fenêtre à part CPYSPLF FILE(QPRTOBJD) TOFILE(mabib/essrq)
Est-il possible de faire du select à partir de ce type de fichier ou bien faut-il le formater ou le découper et si oui comment faire.
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 Display Physical File Member File . . . . . . : ESSRQ Library . . . . : mabib Member . . . . . : ESSRQ Record . . . . . : 1 Control . . . . . Column . . . . . : 1 Find . . . . . . . *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+... Display Object Description - Basic xxxxSS1 V5R4M0 060210 Library . . . . . . . : QSYS Library AS Library AS Object Type Attribute Size Text £ *DEVD DSPVRT 16384 Device create ADMINCC *DEVD PRTLAN 16384 Admin Printer AJKPOIO *DEVD PRTVRT 20480 Device create [....] DSTFFPOP *DEVD DSPVRT 16384 Device create DSTULTZB1 *DEVD DSPVRT 16384 Admin Printer More... F3=Exit F12=Cancel F19=Left F20=Right F24=More keys
Le but je souhaiterai garder la colonne Object et Size comme résultat ceci n'est qu'un exemple bidon mais le principe peut-être réutilisé pour mes besoins sur un autre fichier ou plusieurs.
Merci
Si tu copies un spool dans un fichier, le resultat ne donne qu'une seule colonne.
Maintenant dans ton DSPOBJD fais un F4 dessus, et au lieu de prendre *PRINT, prends *OUTFILE (résultat dans un fichier bien formatté cette fois-ci).
Dans SQL, l'entête de colonne ne correspond pas forcément avec le nom de la colonne.
Pour voir les noms de colonnes d'un fichier, dans ton SELECT, fais un F4 aussi.
Apprends à bien utiliser F4 et F1 pour aide
Merci K2R400
Je suis d'accord avec toi mais dans la commande DSPJOBD et d'autre commande il n'y a pas de possibilité de mettre *OUTFILE alors comment formater le fichier pour le rendre utilisable à partir d'une requête.
Yes super le F4 sur la ligne du select
Merci 1000000000000000000000000000000 et bonne soirée
Effectivement, toutes les commandes ne sont pas pourvues de *OUTFILE.
DSPOBJD possède bien *OUTFILE
Slt K2R400,
C'est nickel j'ai réussi à utiliser le select suivant:
le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT upuprf,UPJBDL FROM mabib/monfichier
Par contre lorsque je veux afficher que les WSFRAT je n'y arrive pas comment faire????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Display Data Data width . . . . . . : 27 Position to line . . . . . Shift to column . . . . . . ....+....1....+....2....+.. User Job Description Library USER1 WSFRAL USER2 WSFRAT USER3 WSFRAS [...] USER4 WSFRAL More... F3=Exit F12=Cancel F19=Left F20=Right F21=Split
Il te faut maîtriser un minimum SQL, une documentation en français que tu trouveras sur le net t'aidera.
Sinon celà donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT upuprf,UPJBDL FROM mabib/monfichier where UPJBDL = 'WSFRAT'
Ok j'avais oublié les '' avec c'est nettement mieux .
Merci pour ta doc elle va me servir je crois
A+
Slt K2R400
Nickel pour le sql mais une petite question j'ai créé une table [tab_users] dans ma bibliothèque [mabib] à partir de mon select pas de problème pour le contenu par contre lorsque je regarde les objets de ma bibliothèque j’ai bien un nouveau fichier qui correspond à la création de ma table mais le nom [USER_00001 ]ne correspond pas au nom [tab_users] que je lui et donné lors de la commande create table pourquoi et comment forcer le create table pour qu’il prenne le bon nom [tab_user] ???
J'ai regardé sur la doc que tu ma donné mais la je suis perdu je ne trouve pas l'explication
A+
Sur AS/400 les objets sont limités à 10 caractères, et très peu de caractères spéciaux sont acceptés.
Si tu fais un create table avec un nom de plus de 10 car, le systeme attribue un nom à lui. D'ailleurs tu pourras faire un select sur les deux noms indifferemment.
Si tu veux utiliser des noms longs, fais l'inverse.
Exemple avec un fichier contentieux.
- Create table mabib/content.......
Tu crees une table avec un nom inferieur ou egal à 10, puis pour pour lui donner un nom long plus explicite tu utilises l'instruction SQL CREATE ALIAS.
CREATE ALIAS MABIB/FICHIER_DES_CONTENTIEUX FOR MABIB/CONTENT...fais F4
Ainsi tu pourras faire un select soit sur CONTENT soit sur FICHIER_DES_CONTENTIEUX
Ok merci pour l'explication c'est limpide et ça me fera utiliser les ALIAS
A+
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