Skip to content

Instantly share code, notes, and snippets.

@phpdave
Last active October 27, 2016 14:20
Show Gist options
  • Save phpdave/f2b8835cc6e6d4a7fd0bc8a40ba041e4 to your computer and use it in GitHub Desktop.
Save phpdave/f2b8835cc6e6d4a7fd0bc8a40ba041e4 to your computer and use it in GitHub Desktop.
Instead of Trigger for IBM i DB2
/* Creating view MYLIB.ACCOUNTVIEW */
CREATE OR REPLACE VIEW MYLIB.ACCOUNTVIEW AS
SELECT
CMPNME AS COMPANY_NAME,
ADDR AS COMPANY_ADDRESS
FROM MYLIB.ACCTPF;
/* Setting system view name to ACCOUNTVIE for MYLIB.ACCOUNTVIEW */
RENAME MYLIB.ACCOUNTVIEW TO SYSTEM NAME ACCOUNTVIE;
/* Setting label text for MYLIB.ACCOUNTVIEW */
LABEL ON TABLE MYLIB.ACCOUNTVIEW IS 'SQL View of ACCTPF' ;
/* Creating SQL trigger MYLIB.ACCTADDTRG */
CREATE OR REPLACE TRIGGER MYLIB.ACCTADDTRG
INSTEAD OF INSERT ON MYLIB.ACCOUNTVIEW
REFERENCING NEW NewViewRow
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
INSERT INTO MYLIB.ACCTPF (CMPNME,
ADDR)
VALUES (COALESCE(NewViewRow.COMPANY_NAME,' '),
COALESCE(NewViewRow.COMPANY_ADDRESS,' '));
END;
/* Setting label text for MYLIB.ACCTADDTRG */
LABEL ON TRIGGER MYLIB.ACCTADDTRG IS
'Handles insert statements to view that are mapped to base tables' ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment