Gracias Raul, con esto me ha funcionado.

De: forum.help400 <forum.help400-boun...@help400.com> En nombre de Raul Bascones
Enviado el: miércoles, 4 de octubre de 2023 8:38
Para: forum.help400 <forum.help400@help400.com>
Asunto: Re: Consulta traspaso de Datos del Iseries a PC

Buenos días,

Prueba con esta Select, creo que podría funcionar:

SELECT  CAST(SUBSTR(CHAR(CTFCHD), 1, 4) || '-' ||
             SUBSTR(CHAR(CTFCHD), 5, 2) || '-' ||
             SUBSTR(CHAR(CTFCHD), 7, 2) AS VARCHAR(10) CCSID 284)  AS FECHA,
            CTTVTA, CTFIJ, CTSEG, CTOTR
            FROM JAK001F/JAKCT

Un saludo.


El lun, 2 oct 2023 a las 18:28, SALVADOR SANCHEZ COSTA | INFORGES | 
(<ssanc...@inforges.es<mailto:ssanc...@inforges.es>>) escribió:
Buenas tardes, tengo que hacer un traspaso masivo de datos del AS400 (de muchas 
tablas) a un PC, creando vistas a partir del select de una tabla en una CL.

/* ---------------------------------------------------------------------------*/
/* BORRAR VISTA                                                               */
/* ---------------------------------------------------------------------------*/
   DLTF FILE(QTEMP/VIEW)
   MONMSG MSGID(CPF0000)
/* ---------------------------------------------------------------------------*/
/* CREAR VISTA - TIPO VENTA - CONDICIONES (JAKCT)                             */
/* ---------------------------------------------------------------------------*/
/* RUNSQL     SQL('CREATE VIEW QTEMP.VIEW  AS (SELECT +                       */
/*            CTFCHD, CTTVTA, CTFIJ, CTSEG, CTOTR +                           */
/*            FROM JAK001F/JAKCT)') +                                         */
/*            COMMIT(*NONE)                                                   */

   RUNSQL     SQL('CREATE VIEW QTEMP.VIEW  AS (SELECT +
                CAST(SUBSTR(CHAR(CTFCHD), 1, 4) || ''-'' || +
                SUBSTR(CHAR(CTFCHD), 5, 2) ||  ''-'' || +
                SUBSTR(CHAR(CTFCHD), 7, 2) AS VARCHAR(10))  AS FECHA,  +
                CTTVTA, CTFIJ, CTSEG, CTOTR +
                FROM JAK001F/JAKCT)') COMMIT(*NONE)

/* ---------------------------------------------------------------------------*/
/* EXPORTANDO DATOS DE QTEMP/VIEW A IFS                                       */
/* ---------------------------------------------------------------------------*/
   CPYTOIMPF FROMFILE(QTEMP/VIEW) +
             TOSTMF('/QS/001SF/SALIDA/AUX_NAC-TIPOVENTA_COND.CSV') +
             MBROPT(*ADD) +
             FROMCCSID(*FILE) STMFCCSID(*STMF) +
             RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM(*NONE) +
             STRESCCHR(*STRDLM) RMVBLANK(*TRAILING) +
             FLDDLM(';') NUMFLDPAD(*NONE) +
             DECPNT(*COMMA) DATFMT(*ISO) TIMFMT(*ISO)

Me iba bien hasta que me han pedido que los campos de fecha, que en el AS400 
los tengo como campo numéricos de 8,0 (CCAAMMDD), los pase en formato fecha 
(CCAA-MM-DD’), que en ese casso, cuando llega a PC, me mete caracteres extraños

[cid:image001.png@01D9F55A.65155960]

Si hago una SELECT de la vista creada en el AS400, los datos aparecen 
correctamente.
SELECT * FROM QTEMP/view
[cid:image002.png@01D9F55A.65155960]


En el SELECT de la vista he intentado distintas formas, porque no es lo mismo 
en el editor SQL del AS400 que en el programa CL, pero lo haga como lo haga, me 
lelgan caracteres extraños al fichero en el PC.

Si hago el SELECT del CRTVIEW a un fichero en el editor del AS400, y este lo 
paso a PC con transferencia del client Access, también me hace lo mismo, me 
mete caracteres extraños en la fecha.

Haciendo una prueba, creando la vista temporal a partir de un fichero con el 
campo definido como fecha:
                ***************************************************************
*** SLFCP   - PRUEBA FECHAS
***************************************************************
          R RGSLFCP
            CPBNC           L         COLHDG('FECHA PRUEBA')

Entonces si me lo hace correctamente:
      [cid:image003.png@01D9F55D.0BDAC2B0]
Pero claro, esto me obligaría a tener que crear muchas tablas temporales.


No se si el problema lo tengo en la parte de crear la vista con los datos, o al 
copiar al IFS por algún problema o incoherencia en la tabla de códigos……..

Alguna idea de como soluconarlo?????

Gracias.-



AVISO SOBRE CONFIDENCIALIDAD:
Los datos personales que forman parte de este correo electrónico son tratados 
por Inforges IT Services, SL con la finalidad de mantenimiento de contactos. 
Los datos se han obtenido con su consentimiento o como consecuencia de una 
relación jurídica previa. Puede usted ejercitar los derechos de acceso, 
rectificación, cancelación y oposición así como obtener más información 
solicitándolo al remitente de este correo electrónico.

La información contenida en el presente mensaje de correo electrónico es 
confidencial y su acceso únicamente está autorizado al destinatario original 
del mismo, quedando prohibidos cualquier comunicación, divulgación, o reenvío, 
tanto del mensaje como de su contenido. Inforges IT Services, SL no puede 
asumir la responsabilidad derivada de que terceras personas puedan llegar a 
conocer el contenido del mensaje durante su transmisión. En el supuesto de que 
usted no sea el destinatario autorizado, le rogamos borre el contenido del 
mensaje y nos comunique dicha circunstancia a través de un mensaje de correo 
electrónico a la dirección infor...@inforges.es<mailto:infor...@inforges.es> o 
al teléfono 968 350 011.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 � Publicaciones Help400, S.L.
AVISO SOBRE CONFIDENCIALIDAD:
Los datos personales que forman parte de este correo electrónico son tratados 
por Inforges IT Services, SL con la finalidad de mantenimiento de contactos. 
Los datos se han obtenido con su consentimiento o como consecuencia de una 
relación jurídica previa. Puede usted ejercitar los derechos de acceso, 
rectificación, cancelación y oposición así como obtener más información 
solicitándolo al remitente de este correo electrónico.

La información contenida en el presente mensaje de correo electrónico es 
confidencial y su acceso únicamente está autorizado al destinatario original 
del mismo, quedando prohibidos cualquier comunicación, divulgación, o reenvío, 
tanto del mensaje como de su contenido. Inforges IT Services, SL no puede 
asumir la responsabilidad derivada de que terceras personas puedan llegar a 
conocer el contenido del mensaje durante su transmisión. En el supuesto de que 
usted no sea el destinatario autorizado, le rogamos borre el contenido del 
mensaje y nos comunique dicha circunstancia a través de un mensaje de correo 
electrónico a la dirección infor...@inforges.es o al teléfono 968 350 011.

____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 � Publicaciones Help400, S.L.

Reply via email to