IDS11 System error -668 isam error -2
Posted in 2014
Hi:
I have a SPL to run a load data file through the command SYSTEM, the file
content genre as show below command, but the command execution returns me
sql_err = -668 and isam_err = -2; I have Windows 7 and Informix IDS 11
CREATE PROCEDURE Carga_Archivo_Nomina(pnumCliente VARCHAR(20),
pfechaPago DATE,
ptpNomina CHAR(1),
pNombreArchivo VARCHAR(100))
RETURNING CHAR(5) AS CodRet,
VARCHAR(250) AS Msgerror;
DEFINE sql_err SMALLINT;
DEFINE isam_err SMALLINT;
DEFINE error_info CHAR(250);
DEFINE CodRet CHAR(5);
DEFINE strSQL VARCHAR(250);
DEFINE vPATH VARCHAR(100);
DEFINE vArchivoCarga VARCHAR(250);
BEGIN
ON EXCEPTION SET sql_err, isam_err, error_info
LET CodRet = sql_err;
RETURN CodRet, isam_err;
END EXCEPTION;
-------------------------------------------------------------
-- Inicializa variables --
-------------------------------------------------------------
LET CODRET = '000';
LET strSQL = '';
LET vPATH = '';
LET error_info = '';
SELECT
valor
INTO
vPATH
FROM lsf_nominas_param
WHERE param = 'PATH';
-------------------------------------------------------------
-- Creacion de tabla de paso de carga de archivo --
-------------------------------------------------------------
BEGIN
ON EXCEPTION IN (-206)
LET CodRet = '00001';
END EXCEPTION WITH RESUME;
DROP TABLE TCargaArchivo;
END;
-------------------------------------------------------------
-- Crea tabla temporal de carga --
-------------------------------------------------------------
CREATE TEMP TABLE TCargaArchivo(
c1 VARCHAR(250),
c2 VARCHAR(250),
c3 VARCHAR(250),
c4 VARCHAR(250),
c5 VARCHAR(250),
c6 VARCHAR(250),
c7 VARCHAR(250));
-------------------------------------------------------------
-- Carga de Archivo --
-------------------------------------------------------------
LET vArchivoCarga = vPATH || "\\\\carga";
LET strSQL = "echo "|| "FILE '" || vPATH || '\\\\' || TRIM(pNombreArchivo) ||
"' DELIMITER ',' " ||
7 || "; INSERT INTO TCargaArchivo" ||
";"||' > ' || vPATH || '\\\\carga';
SYSTEM strSQL;
RETURN CodRet, strSQL;
END;
END PROCEDURE
Thanks