--*****************************************************************************
-- SQL Server
Insert Trigger
-- for ADDRESS
table
-- will
generate xml and save it to the OutFolder
--*****************************************************************************
CREATE TRIGGER
trgADDRESS_INSERT ON [ADDRESS]
FOR INSERT
As
DECLARE @sSQL VARCHAR(8000)
DECLARE @sOutFolder VARCHAR(255)
--specify the
data exchange folder here
select @sOutFolder='c:\temp\'
select @sSQL = 'echo
^<ADDRESSDOC^>^<ADDRESS^>^<SYSID^>'+convert(varchar,isnull(SYSID,""))+'^</SYSID^>^<ADD1^>'+convert(varchar,isnull(ADD1,""))+'^</ADD1^>^<ADD2^>'+convert(varchar,isnull(ADD2,""))+'^</ADD2^>^<CITY^>'+convert(varchar,isnull(CITY,""))+'^</CITY^>^<STATE^>'+convert(varchar,isnull(STATE,""))+'^</STATE^>^<ZIP^>'+convert(varchar,isnull(ZIP,""))+'^</ZIP^>^<SDATE^>'+convert(varchar,isnull(SDATE,""))+'^</SDATE^>^<EDATE^>'+convert(varchar,isnull(EDATE,""))+'^</EDATE^>^<LASTUPDATE^>'+convert(varchar,isnull(LASTUPDATE,""))+'^</LASTUPDATE^>^<USER^>'+convert(varchar,isnull(USER,""))+'^</USER^>^</ADDRESS^>^</ADDRESSDOC^> >'+ @sOutFolder + 'ADDRESS_'+convert(varchar,SYSID)+'.xml' from inserted
exec master..xp_cmdshell
@sSQL
--*****************************************************************************
--End of SQL
Server Trigger
--*****************************************************************************
--*****************************************************************************
-- Oracle
Insert Trigger
--
--* WARNING *
--Following
packages must be installed in SYS schema in order to use this trigger
--DBMS_RANDOM,
this package can be found in
$ORACLE_HOME\Rdbms\Admin\Catoctk.sql
--UTL_FILE,
this package can be found $ORACLE_HOME\Rdbms\Admin\utlfile.sql
--$ORACLE_HOME\ADMIN\ocspoke\pfile\init.ora
file has to be updated
--Following
line has to be added, and Oracle restarted afterwards
--UTL_FILE_DIR="c:\temp\"
--*****************************************************************************
CREATE OR
REPLACE TRIGGER
trgADDRESS_INSERT AFTER INSERT ON
ADDRESS FOR EACH
ROW
DECLARE
iFile_Handle UTL_FILE.FILE_TYPE;
i BINARY_INTEGER;
BEGIN
i := DBMS_RANDOM.RANDOM;
--Update with valid exchange folder
iFile_Handle := UTL_FILE.fopen('c:\temp\',
'ADDRESS'|| to_char(i) || '.xml','w',32000);
UTL_FILE.put(iFile_Handle,'<?xml
version=""1.0""?><ADDRESSDOC><ADDRESS>');
UTL_FILE.put(iFile_Handle,'<SYSID>'||:new.SYSID||'</SYSID>');
UTL_FILE.put(iFile_Handle,'<ADD1>'||:new.ADD1||'</ADD1>');
UTL_FILE.put(iFile_Handle,'<ADD2>'||:new.ADD2||'</ADD2>');
UTL_FILE.put(iFile_Handle,'<CITY>'||:new.CITY||'</CITY>');
UTL_FILE.put(iFile_Handle,'<STATE>'||:new.STATE||'</STATE>');
UTL_FILE.put(iFile_Handle,'<ZIP>'||:new.ZIP||'</ZIP>');
UTL_FILE.put(iFile_Handle,'<SDATE>'||to_char(:new.SDATE,'mm/dd/yyyy')||'</SDATE>');
UTL_FILE.put(iFile_Handle,'<EDATE>'||to_char(:new.EDATE,'mm/dd/yyyy')||'</EDATE>');
UTL_FILE.put(iFile_Handle,'<LASTUPDATE>'||to_char(:new.LASTUPDATE,'mm/dd/yyyy')||'</LASTUPDATE>');
UTL_FILE.put(iFile_Handle,'<USER>'||:new.USER||'</USER>');
UTL_FILE.put(iFile_Handle,'</ADDRESS></ADDRESSDOC>');
UTL_FILE.fclose(iFile_Handle);
EXCEPTION
When NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_line('no_data_found');
UTL_FILE.FCLOSE(iFile_Handle);
WHEN UTL_FILE.INVALID_PATH THEN
DBMS_OUTPUT.PUT_line('UTL_FILE.INVALID_PATH');
UTL_FILE.FCLOSE(iFile_Handle);
WHEN UTL_FILE.READ_ERROR THEN
DBMS_OUTPUT.PUT_line('UTL_FILE.READ_ERROR');
UTL_FILE.FCLOSE(iFile_Handle);
WHEN UTL_FILE.WRITE_ERROR THEN
DBMS_OUTPUT.PUT_line('UTL_FILE.WRITE_ERROR');
UTL_FILE.FCLOSE(iFile_Handle);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_line('UTL_FILE.OTHER_ERROR');
UTL_FILE.FCLOSE(iFile_Handle);
END;
--*****************************************************************************
-- End of
Oracle Trigger
--*****************************************************************************