2008-12-06 120 views
18

En AS400 en SQL interactivo en una sesión 5250,SQL consulta de archivos multi-miembro en AS400

select * from myfile 

devuelve filas de un miembro de mi_archivo sólo cuando tiene más de un miembro.

¿Cómo puedo obtener filas de un miembro específico?

Importante: al final me gustaría hacer esto sobre JDBC con jt400, así que realmente quiero una solución que funcione allí.

Gracias.

Respuesta

7

Cree un alias SQL para el miembro y consulte el alias, consulte this page para ver un ejemplo.

34

Se puede crear un alias con el comando alias de crear:

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

Esto le permitirá ejecutar SQL contra ese miembro usando el alias como lo haría con cualquier otro archivo:

SELECT * FROM myLibrary/myAlias 

Justo recuerde que el alias se mantendrá después de su sesión, no son temporales. Así que si usted no necesita el alias cuando haya terminado, o bien crear el alias en QTEMP o explícitamente soltar el alias una vez que haya terminado con él:

DROP ALIAS myLibrary/myAlias 

HTH

+0

Gracias! Sabía que podría estar caído, ahora todo lo que necesito es consultar a todos los miembros. – JustinKaz

+4

@tmtest esta respuesta debe ser aceptada –

0

SQL Alias ​​

OS/400 R430 y más tarde admite una declaración de alias SQL. Cree un alias para cada miembro al que se debe acceder, luego haga referencia al alias de la aplicación. El alias es un objeto persistente; debe crearse solo una vez. El miembro al que se hace referencia en CREATE ALIAS no tiene que existir cuando se crea ALIAS. Cualquier herramienta SQL, como OS/400 o i5/OS interactive SQL (STRSQL) o iSeries Navigator's Run SQL Scripts, se puede utilizar para crear el alias, por ejemplo:

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