Professional Documents
Culture Documents
JOB ODS EnableTriggers
JOB ODS EnableTriggers
Try --->WF_ODS_Util_EnableTriggers
Script: scr_EnableTriggers
## Enable Triggers
# If Commit and Rollback is being used and the bypass flag is set to N
IF(BF_SetFLActive() = 'N')
BF_EnableAllUserTriggers( 'ODS');
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 (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;