Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

JOB_ODS_EnableTriggers

Try --->WF_ODS_Util_EnableTriggers
Script: scr_EnableTriggers
## Enable Triggers

PRINT('*** Enabling Triggers - Start');

# If Commit and Rollback is being used and the bypass flag is set to N
IF(BF_SetFLActive() = 'N')
BF_EnableAllUserTriggers( 'ODS');

PRINT('*** Enabling Triggers - End');

Function: BF_SetFLActive()
## Function: BF_SetFLActive
## Purpose: Sets the ETL_ACTIVE_FL flag. 'Y" if IL else 'N'
## Parameters: none
## Returns: Flag
## Notes: If Commit/Rollback is not used the default ETL_ACTIVE_FL to 'Y'
##
## History: 15.Dec.2012 Millbrook Base Version (Initial Comment)

IF ( BF_GetGWCRFlag( ) = 'N')

BEGIN
$LV_ETL_ACTIVE_FL = 'Y';
END

else

BEGIN
$LV_ETL_ACTIVE_FL
=lookup_ext([ODS_DS.ODS.ETL_ODS_CYCLE_CONTROL_PARM,'PRE_LOAD_CACHE','MAX'],
[BYPASS_ROLLBACK_FL],['Y'],[CONFIG,'=',current_system_configuration()]) SET
("run_as_separate_process"='no', "output_cols_info"='<?xml version="1.0"
encoding="UTF-8"?><output_cols_info><col index="1" expression="no"/>
</output_cols_info>' );
END

Return $LV_ETL_ACTIVE_FL;
*******----------
BF_EnableAllUserTriggers()
## Function: BF_EnableAllUserTriggers
## Purpose: Set all user indexes to enabled for an environment
## Parameters: $PV_Environment - ODS or EDW
## Returns: none
## Notes:
##
## History: 14.Jan.2013 Guidewire Initial Version
## 05.Jan.2013 JRL Added SQL case
## 10.Dec.2013 WRS Change commit/rollback function to use GWCR

IF (NOT $PV_Environment IN('ODS', 'EDW'))


BF_LogError('BF_EnableAllUserTriggers: $PV_Environment not found.', 1001);

IF (BF_GetGWCRFlag() = 'Y')
BEGIN
IF (upper(BF_GetDatabaseTypeDW( )) = 'ORACLE')
BEGIN
$LV_SQL = 'declare
v_cmd varchar2(4000);
begin
for tab in (select TRIGGER_NAME
from user_triggers)
loop
v_cmd := \'ALTER TRIGGER \' || TAB.TRIGGER_NAME || \' ENABLE\';
execute immediate v_cmd ;
end loop;
end;';

## You MUST cleanse the string because ORACLE gives error if there are
carriage returns
$LV_SQL = replace_substr_ext(replace_substr_ext($LV_SQL, '/n', ' ', null,
null), '/r', ' ', null, null);

IF ($PV_Environment = 'ODS')
sql('ODS_DS', $LV_SQL);
ELSE
sql('EDW_DS', $LV_SQL);
END
else if (upper(BF_GetDatabaseTypeDW( )) = 'SQL')
BEGIN
$LV_SQL = 'DECLARE @trigger_name nvarchar(100);
DECLARE @table_name nvarchar(100);
DECLARE all_triggers CURSOR
FOR SELECT name, object_name(parent_id) as table_name FROM
sys.triggers WHERE type = \'TR\'
OPEN all_triggers
FETCH NEXT FROM all_triggers INTO @trigger_name, @table_name
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC(\'ENABLE TRIGGER \' + @trigger_name + \' ON \' +
@table_name)
FETCH NEXT FROM all_triggers INTO @trigger_name,
@table_name
END
CLOSE all_triggers;
DEALLOCATE all_triggers; ';

IF ($PV_Environment = 'ODS')
sql('ODS_DS', $LV_SQL);
ELSE
sql('EDW_DS', $LV_SQL);

END
else
BF_LogError('BF_EnableAllUserTriggers: Database type not found.', 1001);

END

RETURN 1;

You might also like