![]() |
|
Archives of the TeradataForumMessage Posted: Wed, 10 Oct 2001 @ 19:38:21 GMT
Hi, I need help to port our Oracle trigger to Teradata ASAP. I read that you cannot have variable in the trigger to store an value from a 'select' statement. Can someone help me to work around it? Can I either use macro or multiple triggers to capture the logic below? Here it is:
CREATE OR REPLACE TRIGGER tr_clickthrough_detail
after insert ON bf_clickthrough_detail
FOR each row
DECLARE
v_delivered NUMBER;
v_count NUMBER;
pragma AUTONOMOUS_TRANSACTION;
BEGIN
SELECT delivered INTO v_delivered
FROM bf_mailing_summary
WHERE mailing_id = :new.mailing_id;
UPDATE bf_clickthrough_summary set how_many = how_many + 1,
tracking_rate = (1.0*(unique_clicks + 1))/v_delivered
WHERE mailing_id = :new.mailing_id
AND map_id = :new.map_id;
IF SQL%NOTFOUND THEN
RAISE_APPLICATION_ERROR(-20004, 'NO bf_clickthrough_summary record
was found - no update can be performed.');
END IF;
UPDATE bf_mailing_summary set total_clicks = total_clicks + 1
WHERE mailing_id = :new.mailing_id;
IF SQL%NOTFOUND THEN
RAISE_APPLICATION_ERROR(-20004, 'NO bf_clickthrough_summary record
was found - no update can be performed.');
END IF;
SELECT COUNT(*) INTO v_count
FROM bf_clickthrough_detail
WHERE mailing_id = :new.mailing_id
AND userid = :new.userid
AND when_clicked < :new.when_clicked;
IF v_count = 0 THEN
UPDATE bf_mailing_summary
SET respondents = respondents + 1
WHERE mailing_id = :new.mailing_id;
END IF;
SELECT COUNT(*) INTO v_count
FROM bf_clickthrough_detail
WHERE mailing_id = :new.mailing_id
AND userid = :new.userid
AND map_id = :new.map_id
AND sequence = :new.sequence
AND when_clicked < :new.when_clicked;
IF v_count = 0 THEN
UPDATE bf_mailing_summary
SET unique_clicks = unique_clicks + 1
WHERE mailing_id = :new.mailing_id;
UPDATE bf_clickthrough_summary
SET unique_clicks = unique_clicks + 1
WHERE mailing_id = :new.mailing_id
AND map_id = :new.map_id
AND sequence = :new.sequence;
END IF;
COMMIT;
END;
;
Thanks, Rita
| ||||||||||||||||||||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||
| Copyright 2016 - All Rights Reserved | ||||||||||||||||||||||||||||||||||||||||||||||||
| Last Modified: 15 Jun 2023 | ||||||||||||||||||||||||||||||||||||||||||||||||