I am getting a frustrating error when i try to insert into the table the trigger i created is on.
Any insight would be appreciated
Error:
Code
Any insight would be appreciated
Error:
Code:
db2 => INSERT INTO trstat VALUES ('340758A', 'POSITION', timestamp ( '2008-08-14-13.53.38.000000' ), '-', 272816, '[0432642N0794126W]No Zone Match',
'TM4WIN', 365374, 'ONOAK')
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0723N An error occurred in a triggered SQL statement in trigger
"USER.RCC_PTIMEST". Information returned for the error includes SQLCODE
"-746", SQLSTATE "57053" and message tokens
"USER.RCC_PROC_PTIMESTAMP|SQL08081417151250". SQLSTATE=09000
Code:
--#SET TERMINATOR @
DROP TRIGGER rcc_ptimestamp
@
DROP PROCEDURE rcc_proc_ptimestamp
@
CREATE PROCEDURE rcc_proc_ptimestamp(
IN p_code VARCHAR(10),
IN p_new_time TIMESTAMP,
IN p_trip_num INTEGER,
IN p_status VARCHAR(10)
)
LANGUAGE SQL
MODIFIES SQL DATA
P1:BEGIN ATOMIC
DECLARE v_count1 INTEGER DEFAULT 0;
DECLARE v_count2 INTEGER DEFAULT 0;
DECLARE v_old_time TIMESTAMP;
DECLARE SQLCODE INTEGER DEFAULT 0;
SELECT count(time_changed) INTO v_count2 FROM trstat WHERE trip_9 = p_trip_num AND code = p_code AND status = 'ENRTE';
SELECT time_changed INTO v_old_time FROM trstat WHERE trip_9 = p_trip_num AND code = p_code AND status = 'ENRTE';
IF p_status = 'ENRTE' THEN
--ENTER INTO rcc_ptimestamp --current En Routed trips
INSERT INTO rcc_ptimestamp (trip_number, start_time) VALUES (p_trip_num, p_new_time);
ELSEIF v_count2 <> 0 THEN
SELECT count(*) INTO v_count1 FROM rcc_timestamp WHERE trip_number = p_trip_num AND start_time = v_old_time;
--verify no duplicates in historical table
IF v_count1 = 0 THEN
--match
--INSERT INTO rcc_timestamp
INSERT INTO rcc_timestamp (trip_number, start_time, end_time, duration) VALUES (p_trip_num, v_old_time, p_new_time, (p_new_time - v_old_time));
--DELETE FROM rcc_ptimestamp
DELETE FROM rcc_ptimestamp WHERE trip_number = p_trip_num AND start_time = v_old_time;
END IF;
END IF;
END@
CREATE TRIGGER rcc_ptimestamp AFTER INSERT ON trstat
REFERENCING
NEW AS NEW
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
CALL rcc_proc_ptimestamp(NEW.code, NEW.time_changed, NEW.trip_9, NEW.status);
END@
--#SET TERMINATOR ;