[RESOLU] IFS_READ avec PATH dynamique dans SQLRPGLE
[RESOLU] IFS_READ avec PATH dynamique dans SQLRPGLE
Bonjour,
J'ai un programme SQLRPGLE qui lit un document dans l'IFS:
EXEC SQL
LISTAGG(LINE, ' ')
WITHIN GROUP(ORDER BY LINE_NUMBER)
AS REQUEST
INTO :Stmt
FROM TABLE(QSYS2.IFS_READ (
PATH_NAME => '/mypath/doc.txt',
END_OF_LINE => 'CRLF',
MAXIMUM_LINE_LENGTH => 1024)) ;
Il fonctionne bien.
J'essaye de rendre le PATH_NAME paramétrable.
Z= '/mypath/doc.txt'
EXEC SQL
LISTAGG(LINE, ' ')
WITHIN GROUP(ORDER BY LINE_NUMBER)
AS REQUEST
INTO :Stmt
FROM TABLE(QSYS2.IFS_READ (
PATH_NAME => :Z,
END_OF_LINE => 'CRLF',
MAXIMUM_LINE_LENGTH => 1024)) ;
Produit une erreur SQLCOD = -000000332
Même erreur avec:
Z= '/mypath/doc.txt'
EXEC SQL
LISTAGG(LINE, ' ')
WITHIN GROUP(ORDER BY LINE_NUMBER)
AS REQUEST
INTO :Stmt
FROM TABLE(QSYS2.IFS_READ ( :Z, 1024, 'CRLF')) ;
Quelqu'un aurait une idée ?
Merci.
J'ai un programme SQLRPGLE qui lit un document dans l'IFS:
EXEC SQL
LISTAGG(LINE, ' ')
WITHIN GROUP(ORDER BY LINE_NUMBER)
AS REQUEST
INTO :Stmt
FROM TABLE(QSYS2.IFS_READ (
PATH_NAME => '/mypath/doc.txt',
END_OF_LINE => 'CRLF',
MAXIMUM_LINE_LENGTH => 1024)) ;
Il fonctionne bien.
J'essaye de rendre le PATH_NAME paramétrable.
Z= '/mypath/doc.txt'
EXEC SQL
LISTAGG(LINE, ' ')
WITHIN GROUP(ORDER BY LINE_NUMBER)
AS REQUEST
INTO :Stmt
FROM TABLE(QSYS2.IFS_READ (
PATH_NAME => :Z,
END_OF_LINE => 'CRLF',
MAXIMUM_LINE_LENGTH => 1024)) ;
Produit une erreur SQLCOD = -000000332
Même erreur avec:
Z= '/mypath/doc.txt'
EXEC SQL
LISTAGG(LINE, ' ')
WITHIN GROUP(ORDER BY LINE_NUMBER)
AS REQUEST
INTO :Stmt
FROM TABLE(QSYS2.IFS_READ ( :Z, 1024, 'CRLF')) ;
Quelqu'un aurait une idée ?
Merci.
Modifié en dernier par jbellino le mer. 24 nov. 2021, 08:13:47, modifié 1 fois.
Re: IFS_READ avec PATH dynamique dans SQLRPGLE
Bonjour,
le SQLCODE -323 correspond à une erreur de conversion de CCSID : "Character conversion between CCSID &1 and CCSID &2 not valid.".
Je ne vois pas trop le rapport ici ...
Si la variable Z n'est pas à taille variable :
Nathanaël
le SQLCODE -323 correspond à une erreur de conversion de CCSID : "Character conversion between CCSID &1 and CCSID &2 not valid.".
Je ne vois pas trop le rapport ici ...
Si la variable Z n'est pas à taille variable :
Code : Tout sélectionner
EXEC SQL
LISTAGG(LINE, ' ')
WITHIN GROUP(ORDER BY LINE_NUMBER)
AS REQUEST
INTO :Stmt
FROM TABLE(QSYS2.IFS_READ (TRIM(:Z), 1024, 'CRLF')) ;
Nathanaël
-
- Messages : 51
- Enregistré le : ven. 22 janv. 2021, 10:21:13
Re: IFS_READ avec PATH dynamique dans SQLRPGLE
Bonjour,
j'utilise son petit frère ifs_write et pas de soucis avec une variable hôte comme chemin.
J'avais eu la même erreur car ma variable n'était pas en VARCHAR.
Sébastien.
j'utilise son petit frère ifs_write et pas de soucis avec une variable hôte comme chemin.
J'avais eu la même erreur car ma variable n'était pas en VARCHAR.
Sébastien.
Re: IFS_READ avec PATH dynamique dans SQLRPGLE
Définition de la variable Z :
D Z s 128A varying
Je ne vois pas non plus le rapport avec les CCSID.
D Z s 128A varying
Je ne vois pas non plus le rapport avec les CCSID.
Re: IFS_READ avec PATH dynamique dans SQLRPGLE
Coded character set identifier . . . . . . . . . : 65535
Default coded character set identifier . . . . . : 297
Default coded character set identifier . . . . . : 297
Re: IFS_READ avec PATH dynamique dans SQLRPGLE
Il faudrait changer le CCSID du JOB : CHGJOB CCSID(297)
Ou bien essayer avec :
D Z s 128A varying ccsid(297)
Je ne pense pas qu'un CAST pour changer le CCSID fonctionne dans l'instruction SQL (pas pour les jobs en 65535).
Ou bien essayer avec :
D Z s 128A varying ccsid(297)
Je ne pense pas qu'un CAST pour changer le CCSID fonctionne dans l'instruction SQL (pas pour les jobs en 65535).
Nathanaël
Re: IFS_READ avec PATH dynamique dans SQLRPGLE
Si je change le job en CCSID(297) ça fonctionne !
Si je definis Z .... CCSID(297) ça fonctionne aussi.
Problème résolu. Merci beaucoup !
P.S.: Est-ce que sur ce forum quand un problème est résolu on doit mettre un mot clé style [RESOLU] dans le sujet ?
Si je definis Z .... CCSID(297) ça fonctionne aussi.
Problème résolu. Merci beaucoup !
P.S.: Est-ce que sur ce forum quand un problème est résolu on doit mettre un mot clé style [RESOLU] dans le sujet ?
Re: IFS_READ avec PATH dynamique dans SQLRPGLE
Parfait !
C'est toujours bien de marquer RESOLU dans le sujet (même si je suis le premier à oublier)
C'est toujours bien de marquer RESOLU dans le sujet (même si je suis le premier à oublier)
Nathanaël