2008-12-06 304 views
18

sur AS400 dans SQL dans une session 5250,requête SQL de fichier multi-membres sur AS400

select * from myfile 

renvoie les lignes d'un seul membre lorsque mon_fichier a plus d'un membre.

Comment puis-je obtenir des lignes d'un membre spécifique? Important: en fin de compte, je voudrais faire cela sur JDBC avec jt400 donc vraiment je veux une solution qui fonctionnera là-bas.

Merci.

Répondre

7

Créez un alias SQL pour le membre et interrogez l'alias, voir this page pour un exemple.

34

Vous pouvez créer un alias en utilisant la commande create alias:

CREATE ALIAS myLibrary/myAlias FOR memberLibrary/memberFile(memberName) 

Cela vous permettra d'exécuter sql contre ce membre en utilisant l'alias comme vous le feriez pour tout autre fichier:

SELECT * FROM myLibrary/myAlias 

Juste rappelez-vous que l'alias restera après votre session, ils ne sont pas temporaires. Donc, si vous n'aurez pas besoin de l'alias lorsque vous avez terminé, créez l'alias dans QTEMP ou supprimer explicitement l'alias une fois que vous avez fini avec elle:

DROP ALIAS myLibrary/myAlias 

HTH

+0

Merci! Je savais que cela pourrait être en panne, maintenant tout ce dont j'ai besoin est d'interroger tous les membres. – JustinKaz

+4

@tmtest cette réponse devrait être acceptée –

0

Alias ​​SQL

OS/400 R430 et Plus tard, prendre en charge une instruction d'alias SQL. Créez un alias pour chaque membre auquel vous devez accéder, puis faites référence à l'alias de l'application. L'alias est un objet persistant - il ne doit être créé qu'une seule fois. Le membre référencé dans CREATE ALIAS ne doit pas nécessairement exister lorsque le ALIAS est créé. Tout outil SQL, comme OS/400 ou i5/OS interactive SQL (STRSQL) ou iSeries Navigator's Run SQL Scripts, peut être utilisé pour créer l'alias, par exemple:

CREATE ALIAS MYLIB.FILE1MBR1 FOR MYLIB.MYFILE(MBR1) 
CREATE ALIAS MYLIB.FILE1MBR2 FOR MYLIB.MYFILE(MBR2) 

http://www-01.ibm.com/support/docview.wss?uid=nas1f1eaeecc0af19cc38625669100569213