2008-12-06 12 views
18

auf AS400 in der interaktiven SQL in einer 5250-Sitzung,SQL-Abfrage von Multi-Element-Datei auf AS400

select * from myfile 

kehren Zeilen aus einem Mitglied nur dann, wenn Meinedat mehr als ein Mitglied hat.

Wie kann ich Zeilen von einem bestimmten Mitglied erhalten?

Wichtig: Am Ende möchte ich dies über JDBC mit jt400 tun, also wirklich ich will eine Lösung, die dort arbeiten wird.

Danke.

Antwort

7

Erstellen Sie einen SQL-Alias ​​für das Mitglied und fragen Sie den Alias ​​ab, siehe this page als Beispiel.

34

Sie können einen Alias ​​erstellen Sie mit dem Alias-Befehl erstellen:

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

Dies ermöglicht Ihnen, SQL gegen dieses Mitglied laufen mit dem Alias ​​wie jedes andere Datei:

SELECT * FROM myLibrary/myAlias 

Nur Denken Sie daran, dass der Aliasname nach Ihrer Sitzung beibehalten wird, sie sind nicht temporär. Also, wenn Sie nicht den Alias ​​benötigen, wenn Sie fertig sind, entweder den Alias ​​in QTEMP erstellen oder explizit den Alias ​​fallen, sobald Sie mit ihm getan:

DROP ALIAS myLibrary/myAlias 

HTH

+0

Thank you! Ich wusste, dass es nicht funktionieren würde, jetzt muss ich nur noch alle Mitglieder abfragen. – JustinKaz

+4

@TMTest diese Antwort sollte akzeptiert werden –

0

SQL Alias ​​

OS/400 R430 und unterstützen Sie später eine SQL Alias-Anweisung. Erstellen Sie einen Alias ​​für jedes Mitglied, auf das zugegriffen werden muss, und verweisen Sie dann auf den Alias ​​aus der Anwendung. Der Alias ​​ist ein persistentes Objekt - es muss nur einmal erstellt werden. Das in der CREATE ALIAS referenzierte Element muss nicht vorhanden sein, wenn die ALIAS erstellt wird. Alles SQL Werkzeug, wie OS/400 oder i5/OS interactive SQL (STRSQL) oder iSeries Navigator's Run SQL Scripts, kann verwendet werden, um den Alias ​​zu erstellen, zum Beispiel:

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