
August 14th, 2008, 10:27 PM
|
| Newbie | | Join Date: Aug 2008
Posts: 1
| |
Embedded SQL returning uncatchable error - Procedure/Trigger
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: -
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 ;
-
|