Hola
rastafarey, perdona que recien conteste a esta hora, la verdad es que hoy fue un día dificil y largo.
Bueno, La idea es crear una DB llamada PRUEBA o lo que sea, genere una mini DB para simular el problema que tengo sin perder tiempo en el resto.
Este es el código para generar la DB
Código SQL
[-]
CREATE TABLE MOV_TEMP (
ID_MOV INTEGER NOT NULL PRIMARY KEY,
REF_CARGO INTEGER NOT NULL,
ENTRADA TIMESTAMP DEFAULT 'now' NOT NULL,
SALIDA TIMESTAMP);
CREATE TABLE MOV_FINAL (
ID_MOV INTEGER NOT NULL PRIMARY KEY,
REF_CARGO INTEGER NOT NULL,
ENTRADA TIMESTAMP DEFAULT 'now' NOT NULL,
SALIDA TIMESTAMP);
CREATE GENERATOR INC_MOV;
DECLARE EXTERNAL FUNCTION FIRSTDAYMONTH
TIMESTAMP
RETURNS TIMESTAMP
ENTRY_POINT 'fn_firstdaymonth' MODULE_NAME 'rfunc';
SET TERM ^ ;
CREATE TRIGGER BI_MOV FOR MOV_TEMP
ACTIVE BEFORE INSERT AS
BEGIN
MOV_TEMP.ID_MOV = gen_id(INC_MOV, 1);
END^
CREATE PROCEDURE MOVER_MOV_TEMP_A_FINAL
AS
BEGIN
INSERT INTO MOV_FINAL (ID_MOV, REF_CARGO, ENTRADA, SALIDA)
SELECT * FROM MOV_TEMP
WHERE SALIDA IS NOT NULL
AND SALIDA < FIRSTDAYMONTH('NOW');
DELETE FROM MOV_TEMP
WHERE SALIDA IS NOT NULL
AND SALIDA < FIRSTDAYMONTH('NOW');
END^
SET TERM ; ^
y con estas instrucciones la usamos
Código SQL
[-]
INSERT INTO MOV_TEMP(REF_CARGO, ENTRADA, SALIDA)
VALUES(1, '2005/08/13 23:39:05', '2005/08/13 23:39:05');
INSERT INTO MOV_TEMP(REF_CARGO, ENTRADA)
VALUES(1, '2005/08/13 23:39:05');
INSERT INTO MOV_TEMP(REF_CARGO, ENTRADA)
VALUES(1, 'now');
EXECUTE PROCEDURE MOVER_MOV_TEMP_A_FINAL
Si ves el error te lo agradecería.