Problème:
L'éxecution du load table génére ce message d'erreur:
Could not execute statement.
Number of bytes (3) for a column from an input file has exceeded the
maximum allowed (512).
-- (db_RecScanner.cxx 725)
SQLCODE=-1013027, ODBC 3 State="HY000"
Référence trouvée dans la doc (Sybase):
Error 1013027
Number of bytes (%2) for a column from an input file has exceeded the maximum allowed (%3). %1
SQLCode |
-1013027L |
Constant |
EMSG_DB_RECSCANNER_E_EXCEEDMAX |
SQLState |
QCA27 |
ODBC 2 State |
ERROR |
ODBC 3 State |
ERROR |
Sybase Error Code |
20597 |
Severity Code |
14 |
Parameter 1 |
location of the exception |
Parameter 2 |
# of bytes. |
Parameter 3 |
maximum number of bytes allowed. |
Probable cause
The number of bytes you are trying to load into a column from an input file has exceeded the maximum number of bytes allowed.
Extrait de la commande Load:
LOAD TABLE XXXXXXXXXXXXXXXXXXXXXX
( XXXXXXX '|',
XXXXXXXX '|',
XXXXXXXXXXX '|',.....
xxxxxxxxxx '|',
xxxxxxxxxxx '|',
xxxxxxxxxxx '@@@')
FROM '/PATH/Fichier_NAME'
QUOTES OFF
ESCAPES OFF
MESSAGE LOG '/PATH/Fichier_Name.log'
row log '/PATH/Fichier_Name.log';
commit;
Résolution
Le problème est dans les fichier source
Aprés analyse du fichier, la génération du fichier s'est faite avec un select sans effacer le nombre de ligne retourné à la fin du fichier.
XXXX|NXXXXX| |XXXX|XXXX|XXXX| | | |XXXX|XXXX|XXXX|XXXXXXXX|XXXX|XXXX| | |XXXX| | | |XXXX| | | | |XXXX | | | |XXXX| |XXXX| |XXXX|XXXX|XXXX|XXXX|XXXX|XXXX|XXXX|XXXX|XXXX| |XXXXXXXX| | |XXXX| |XXXX|XXXX| | | | | |XXXX| |XXXX| | | | | | |XXXX| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |XXXX|XXXX|XXXX| |XXXX| | | |XXXX| |XXXX|XXXX|XXXX| | | | | | | | | | | | |XXXX|XXXX |X @@@
XXXX|000002207
La suppression de la ligne résout le problème.