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 | (<
[email protected]>) 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
>
>
>
>
>
> Si hago una SELECT de la vista creada en el AS400, los datos aparecen
> correctamente.
>
> SELECT * FROM QTEMP/view
>
>
>
>
>
> 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:
>
>
>
> 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
> [email protected] <[email protected]> o al teléfono 968 350 011. *
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 � Publicaciones Help400, S.L.
>
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 � Publicaciones Help400, S.L.