From 8e0e838fe4844d39764533b7f18b6fc3ee50459b Mon Sep 17 00:00:00 2001 From: Jan Kvetina Date: Sun, 9 Jan 2022 18:31:01 +0100 Subject: [PATCH] Triggers page --- apex/f770/application/pages/page_00952.sql | 562 +++++++++++++++++++++ apex/f770/install.sql | 1 + views/user_obj_triggers.sql | 62 +++ 3 files changed, 625 insertions(+) create mode 100644 apex/f770/application/pages/page_00952.sql create mode 100644 views/user_obj_triggers.sql diff --git a/apex/f770/application/pages/page_00952.sql b/apex/f770/application/pages/page_00952.sql new file mode 100644 index 0000000..2c4057d --- /dev/null +++ b/apex/f770/application/pages/page_00952.sql @@ -0,0 +1,562 @@ +prompt --application/pages/page_00952 +begin +-- Manifest +-- PAGE: 00952 +-- Manifest End +wwv_flow_api.component_begin ( + p_version_yyyy_mm_dd=>'2021.04.15' +,p_release=>'21.1.6' +,p_default_workspace_id=>9014660246496943 +,p_default_application_id=>770 +,p_default_id_offset=>0 +,p_default_owner=>'CORE' +); +wwv_flow_api.create_page( + p_id=>952 +,p_user_interface_id=>wwv_flow_api.id(9169746885570061) +,p_name=>'#fa-table-play Triggers' +,p_alias=>'TRIGGERS' +,p_step_title=>'Triggers' +,p_autocomplete_on_off=>'OFF' +,p_group_id=>wwv_flow_api.id(9240371448352386) +,p_step_template=>wwv_flow_api.id(9463753933679086) +,p_page_template_options=>'#DEFAULT#' +,p_required_role=>wwv_flow_api.id(9556407311505078) +,p_last_updated_by=>'DEV' +,p_last_upd_yyyymmddhh24miss=>'20220109171511' +); +wwv_flow_api.create_page_plug( + p_id=>wwv_flow_api.id(14219049972378938) +,p_plug_name=>'Triggers' +,p_icon_css_classes=>'fa-table-play' +,p_region_template_options=>'#DEFAULT#' +,p_plug_template=>wwv_flow_api.id(9070356145569920) +,p_plug_display_sequence=>10 +,p_include_in_reg_disp_sel_yn=>'Y' +,p_plug_display_point=>'BODY' +,p_plug_query_options=>'DERIVED_REPORT_COLUMNS' +,p_attribute_01=>'N' +,p_attribute_02=>'HTML' +); +wwv_flow_api.create_page_plug( + p_id=>wwv_flow_api.id(36621748366912731) +,p_plug_name=>'Triggers' +,p_region_name=>'TRIGGERS' +,p_region_template_options=>'#DEFAULT#' +,p_component_template_options=>'#DEFAULT#' +,p_plug_template=>wwv_flow_api.id(9078290074569925) +,p_plug_display_sequence=>20 +,p_include_in_reg_disp_sel_yn=>'Y' +,p_plug_display_point=>'BODY' +,p_query_type=>'TABLE' +,p_query_table=>'USER_OBJ_TRIGGERS' +,p_include_rowid_column=>false +,p_plug_source_type=>'NATIVE_IG' +,p_plug_query_options=>'DERIVED_REPORT_COLUMNS' +,p_prn_content_disposition=>'ATTACHMENT' +,p_prn_document_header=>'APEX' +,p_prn_units=>'MILLIMETERS' +,p_prn_paper_size=>'A4' +,p_prn_width=>297 +,p_prn_height=>210 +,p_prn_orientation=>'HORIZONTAL' +,p_prn_page_header=>'Triggers' +,p_prn_page_header_font_color=>'#000000' +,p_prn_page_header_font_family=>'Helvetica' +,p_prn_page_header_font_weight=>'normal' +,p_prn_page_header_font_size=>'12' +,p_prn_page_footer_font_color=>'#000000' +,p_prn_page_footer_font_family=>'Helvetica' +,p_prn_page_footer_font_weight=>'normal' +,p_prn_page_footer_font_size=>'12' +,p_prn_header_bg_color=>'#EEEEEE' +,p_prn_header_font_color=>'#000000' +,p_prn_header_font_family=>'Helvetica' +,p_prn_header_font_weight=>'bold' +,p_prn_header_font_size=>'10' +,p_prn_body_bg_color=>'#FFFFFF' +,p_prn_body_font_color=>'#000000' +,p_prn_body_font_family=>'Helvetica' +,p_prn_body_font_weight=>'normal' +,p_prn_body_font_size=>'10' +,p_prn_border_width=>.5 +,p_prn_page_header_alignment=>'CENTER' +,p_prn_page_footer_alignment=>'CENTER' +,p_prn_border_color=>'#666666' +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(36621948513912733) +,p_name=>'TABLE_NAME' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'TABLE_NAME' +,p_data_type=>'VARCHAR2' +,p_is_query_only=>true +,p_item_type=>'NATIVE_LINK' +,p_heading=>'Table Name' +,p_heading_alignment=>'LEFT' +,p_display_sequence=>10 +,p_value_alignment=>'LEFT' +,p_link_target=>'f?p=&APP_ID.:951:&SESSION.::&DEBUG.::P951_TABLE,P951_RESET:&TABLE_NAME.,Y' +,p_link_text=>'&TABLE_NAME.' +,p_enable_filter=>true +,p_filter_operators=>'C:S:CASE_INSENSITIVE:REGEXP' +,p_filter_is_required=>false +,p_filter_text_case=>'MIXED' +,p_filter_lov_type=>'NONE' +,p_use_as_row_header=>false +,p_enable_sort_group=>true +,p_enable_control_break=>true +,p_enable_hide=>true +,p_is_primary_key=>false +,p_include_in_export=>true +,p_escape_on_http_output=>true +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(36623318596912746) +,p_name=>'COUNT_INSERTED' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'COUNT_INSERTED' +,p_data_type=>'NUMBER' +,p_is_query_only=>true +,p_item_type=>'NATIVE_LINK' +,p_heading=>'Inserted' +,p_heading_alignment=>'RIGHT' +,p_display_sequence=>50 +,p_value_alignment=>'RIGHT' +,p_link_target=>'f?p=&APP_ID.:901:&SESSION.::&DEBUG.:901:P901_FLAG,P901_MODULE:G,&TRIGGER_NAME.' +,p_link_text=>'&COUNT_INSERTED.' +,p_enable_filter=>true +,p_filter_is_required=>false +,p_filter_lov_type=>'NONE' +,p_use_as_row_header=>false +,p_enable_sort_group=>true +,p_enable_control_break=>true +,p_enable_hide=>true +,p_is_primary_key=>false +,p_include_in_export=>true +,p_escape_on_http_output=>true +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(36623435398912747) +,p_name=>'COUNT_UPDATED' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'COUNT_UPDATED' +,p_data_type=>'NUMBER' +,p_is_query_only=>true +,p_item_type=>'NATIVE_LINK' +,p_heading=>'Updated' +,p_heading_alignment=>'RIGHT' +,p_display_sequence=>60 +,p_value_alignment=>'RIGHT' +,p_link_target=>'f?p=&APP_ID.:901:&SESSION.::&DEBUG.:901:P901_FLAG,P901_MODULE:G,&TRIGGER_NAME.' +,p_link_text=>'&COUNT_UPDATED.' +,p_enable_filter=>true +,p_filter_is_required=>false +,p_filter_lov_type=>'NONE' +,p_use_as_row_header=>false +,p_enable_sort_group=>true +,p_enable_control_break=>true +,p_enable_hide=>true +,p_is_primary_key=>false +,p_include_in_export=>true +,p_escape_on_http_output=>true +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(36623453734912748) +,p_name=>'COUNT_DELETED' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'COUNT_DELETED' +,p_data_type=>'NUMBER' +,p_is_query_only=>true +,p_item_type=>'NATIVE_LINK' +,p_heading=>'Deleted' +,p_heading_alignment=>'RIGHT' +,p_display_sequence=>70 +,p_value_alignment=>'RIGHT' +,p_link_target=>'f?p=&APP_ID.:901:&SESSION.::&DEBUG.:901:P901_FLAG,P901_MODULE:G,&TRIGGER_NAME.' +,p_link_text=>'&COUNT_DELETED.' +,p_enable_filter=>true +,p_filter_is_required=>false +,p_filter_lov_type=>'NONE' +,p_use_as_row_header=>false +,p_enable_sort_group=>true +,p_enable_control_break=>true +,p_enable_hide=>true +,p_is_primary_key=>false +,p_include_in_export=>true +,p_escape_on_http_output=>true +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(36624034241912753) +,p_name=>'COUNT_CALLS' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'COUNT_CALLS' +,p_data_type=>'NUMBER' +,p_is_query_only=>true +,p_item_type=>'NATIVE_LINK' +,p_heading=>'Calls' +,p_heading_alignment=>'RIGHT' +,p_display_sequence=>40 +,p_value_alignment=>'RIGHT' +,p_link_target=>'f?p=&APP_ID.:901:&SESSION.::&DEBUG.:901:P901_FLAG,P901_MODULE_NAME:G,&TRIGGER_NAME.' +,p_link_text=>'&COUNT_CALLS.' +,p_enable_filter=>true +,p_filter_is_required=>false +,p_filter_lov_type=>'NONE' +,p_use_as_row_header=>false +,p_enable_sort_group=>true +,p_enable_control_break=>true +,p_enable_hide=>true +,p_is_primary_key=>false +,p_include_in_export=>true +,p_escape_on_http_output=>true +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(36624282196912756) +,p_name=>'TRIGGER_NAME' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'TRIGGER_NAME' +,p_data_type=>'VARCHAR2' +,p_is_query_only=>true +,p_item_type=>'NATIVE_LINK' +,p_heading=>'Trigger Name' +,p_heading_alignment=>'LEFT' +,p_display_sequence=>20 +,p_value_alignment=>'LEFT' +,p_link_target=>'f?p=&APP_ID.:952:&SESSION.::&DEBUG.::P952_TABLE,P952_TRIGGER,P952_RESET:&TABLE_NAME.,&TRIGGER_NAME.,Y' +,p_link_text=>'&TRIGGER_NAME.' +,p_enable_filter=>true +,p_filter_operators=>'C:S:CASE_INSENSITIVE:REGEXP' +,p_filter_is_required=>false +,p_filter_text_case=>'MIXED' +,p_filter_exact_match=>true +,p_filter_lov_type=>'DISTINCT' +,p_use_as_row_header=>false +,p_enable_sort_group=>false +,p_enable_hide=>true +,p_is_primary_key=>false +,p_include_in_export=>false +,p_escape_on_http_output=>true +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(40333692543272135) +,p_name=>'IS_VALID' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'IS_VALID' +,p_data_type=>'VARCHAR2' +,p_is_query_only=>false +,p_item_type=>'NATIVE_SINGLE_CHECKBOX' +,p_heading=>'Valid' +,p_heading_alignment=>'CENTER' +,p_display_sequence=>30 +,p_value_alignment=>'CENTER' +,p_attribute_01=>'N' +,p_attribute_02=>'Y' +,p_is_required=>false +,p_enable_filter=>true +,p_filter_operators=>'C:S:CASE_INSENSITIVE:REGEXP' +,p_filter_is_required=>false +,p_filter_text_case=>'MIXED' +,p_filter_lov_type=>'NONE' +,p_use_as_row_header=>false +,p_enable_sort_group=>true +,p_enable_control_break=>true +,p_enable_hide=>true +,p_is_primary_key=>false +,p_duplicate_value=>true +,p_include_in_export=>true +); +wwv_flow_api.create_region_column( + p_id=>wwv_flow_api.id(105338848231262740) +,p_name=>'LAST_DDL_TIME' +,p_source_type=>'DB_COLUMN' +,p_source_expression=>'LAST_DDL_TIME' +,p_data_type=>'DATE' +,p_is_query_only=>false +,p_item_type=>'NATIVE_DATE_PICKER' +,p_heading=>'Last Ddl Time' +,p_heading_alignment=>'CENTER' +,p_display_sequence=>80 +,p_value_alignment=>'CENTER' +,p_attribute_04=>'button' +,p_attribute_05=>'N' +,p_attribute_07=>'NONE' +,p_format_mask=>'YYYY-MM-DD HH24:MI' +,p_is_required=>false +,p_enable_filter=>true +,p_filter_is_required=>false +,p_filter_date_ranges=>'ALL' +,p_filter_lov_type=>'DISTINCT' +,p_use_as_row_header=>false +,p_enable_sort_group=>true +,p_enable_control_break=>true +,p_enable_hide=>true +,p_is_primary_key=>false +,p_duplicate_value=>true +,p_include_in_export=>true +); +wwv_flow_api.create_interactive_grid( + p_id=>wwv_flow_api.id(36621907539912732) +,p_internal_uid=>36621907539912732 +,p_is_editable=>false +,p_lazy_loading=>false +,p_requires_filter=>false +,p_select_first_row=>false +,p_fixed_row_height=>true +,p_pagination_type=>'SET' +,p_show_total_row_count=>true +,p_show_toolbar=>true +,p_toolbar_buttons=>'SEARCH_COLUMN:SEARCH_FIELD:ACTIONS_MENU:SAVE' +,p_enable_save_public_report=>false +,p_enable_subscriptions=>true +,p_enable_flashback=>true +,p_define_chart_view=>true +,p_enable_download=>true +,p_download_formats=>'CSV:HTML:XLSX:PDF' +,p_enable_mail_download=>true +,p_fixed_header=>'PAGE' +,p_show_icon_view=>false +,p_show_detail_view=>false +,p_javascript_code=>wwv_flow_string.join(wwv_flow_t_varchar2( +'function(config) {', +' return unified_ig_toolbar(config, '''');', +'}', +'')) +); +wwv_flow_api.create_ig_report( + p_id=>wwv_flow_api.id(36767443604461534) +,p_interactive_grid_id=>wwv_flow_api.id(36621907539912732) +,p_static_id=>'126235' +,p_type=>'PRIMARY' +,p_default_view=>'GRID' +,p_rows_per_page=>100 +,p_show_row_number=>false +,p_settings_area_expanded=>true +); +wwv_flow_api.create_ig_report_view( + p_id=>wwv_flow_api.id(36767680274461535) +,p_report_id=>wwv_flow_api.id(36767443604461534) +,p_view_type=>'GRID' +,p_stretch_columns=>true +,p_srv_exclude_null_values=>false +,p_srv_only_display_columns=>true +,p_edit_mode=>false +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36768200727461543) +,p_view_id=>wwv_flow_api.id(36767680274461535) +,p_display_seq=>0 +,p_column_id=>wwv_flow_api.id(36621948513912733) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>280 +,p_sort_order=>1 +,p_sort_direction=>'ASC' +,p_sort_nulls=>'LAST' +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36805756179127975) +,p_view_id=>wwv_flow_api.id(36767680274461535) +,p_display_seq=>5 +,p_column_id=>wwv_flow_api.id(36623318596912746) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>90 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36806684942127979) +,p_view_id=>wwv_flow_api.id(36767680274461535) +,p_display_seq=>5 +,p_column_id=>wwv_flow_api.id(36623435398912747) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>90 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36807602194127983) +,p_view_id=>wwv_flow_api.id(36767680274461535) +,p_display_seq=>6 +,p_column_id=>wwv_flow_api.id(36623453734912748) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>90 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36839468239236393) +,p_view_id=>wwv_flow_api.id(36767680274461535) +,p_display_seq=>4 +,p_column_id=>wwv_flow_api.id(36624034241912753) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>90 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(36886788512656607) +,p_view_id=>wwv_flow_api.id(36767680274461535) +,p_display_seq=>3 +,p_column_id=>wwv_flow_api.id(36624282196912756) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>280 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(40711756021689534) +,p_view_id=>wwv_flow_api.id(36767680274461535) +,p_display_seq=>2 +,p_column_id=>wwv_flow_api.id(40333692543272135) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>90 +); +wwv_flow_api.create_ig_report_column( + p_id=>wwv_flow_api.id(107037367019447704) +,p_view_id=>wwv_flow_api.id(36767680274461535) +,p_display_seq=>7 +,p_column_id=>wwv_flow_api.id(105338848231262740) +,p_is_visible=>true +,p_is_frozen=>false +,p_width=>160 +); +wwv_flow_api.create_page_button( + p_id=>wwv_flow_api.id(14704803987370063) +,p_button_sequence=>10 +,p_button_plug_id=>wwv_flow_api.id(14219049972378938) +,p_button_name=>'REFRESH' +,p_button_action=>'REDIRECT_PAGE' +,p_button_template_options=>'#DEFAULT#' +,p_button_template_id=>wwv_flow_api.id(9144574670569995) +,p_button_image_alt=>'Refresh' +,p_button_position=>'RIGHT_OF_TITLE' +,p_button_redirect_url=>'f?p=&APP_ID.:952:&SESSION.::&DEBUG.:952::' +,p_icon_css_classes=>'fa-refresh' +); +wwv_flow_api.create_page_button( + p_id=>wwv_flow_api.id(14705282313370064) +,p_button_sequence=>20 +,p_button_plug_id=>wwv_flow_api.id(14219049972378938) +,p_button_name=>'ENABLE' +,p_button_action=>'REDIRECT_PAGE' +,p_button_template_options=>'#DEFAULT#' +,p_button_template_id=>wwv_flow_api.id(9145249029569999) +,p_button_image_alt=>'Enable' +,p_button_position=>'RIGHT_OF_TITLE' +,p_button_redirect_url=>'f?p=&APP_ID.:952:&SESSION.::&DEBUG.:952:P952_TABLE,P952_TRIGGER,P952_ENABLE:&P952_TABLE.,&P952_TRIGGER.,Y' +,p_button_condition=>'P952_STATUS' +,p_button_condition2=>'DISABLED' +,p_button_condition_type=>'VAL_OF_ITEM_IN_COND_EQ_COND2' +); +wwv_flow_api.create_page_button( + p_id=>wwv_flow_api.id(14705686053370064) +,p_button_sequence=>30 +,p_button_plug_id=>wwv_flow_api.id(14219049972378938) +,p_button_name=>'DISABLE' +,p_button_action=>'REDIRECT_PAGE' +,p_button_template_options=>'#DEFAULT#' +,p_button_template_id=>wwv_flow_api.id(9145249029569999) +,p_button_image_alt=>'Disable' +,p_button_position=>'RIGHT_OF_TITLE' +,p_button_redirect_url=>'f?p=&APP_ID.:952:&SESSION.::&DEBUG.:952:P952_TABLE,P952_TRIGGER,P952_DISABLE:&P952_TABLE.,&P952_TRIGGER.,Y' +,p_button_condition=>'P952_STATUS' +,p_button_condition2=>'ENABLED' +,p_button_condition_type=>'VAL_OF_ITEM_IN_COND_EQ_COND2' +); +wwv_flow_api.create_page_item( + p_id=>wwv_flow_api.id(14706493594370069) +,p_name=>'P952_TABLE_NAME' +,p_item_sequence=>10 +,p_item_plug_id=>wwv_flow_api.id(14219049972378938) +,p_display_as=>'NATIVE_HIDDEN' +,p_attribute_01=>'Y' +); +wwv_flow_api.create_page_item( + p_id=>wwv_flow_api.id(14706824988370069) +,p_name=>'P952_TRIGGER_NAME' +,p_item_sequence=>20 +,p_item_plug_id=>wwv_flow_api.id(14219049972378938) +,p_display_as=>'NATIVE_HIDDEN' +,p_attribute_01=>'Y' +); +wwv_flow_api.create_page_item( + p_id=>wwv_flow_api.id(14707249572370070) +,p_name=>'P952_STATUS' +,p_item_sequence=>30 +,p_item_plug_id=>wwv_flow_api.id(14219049972378938) +,p_use_cache_before_default=>'NO' +,p_display_as=>'NATIVE_HIDDEN' +,p_attribute_01=>'Y' +); +wwv_flow_api.create_page_item( + p_id=>wwv_flow_api.id(14707663997370070) +,p_name=>'P952_ENABLE' +,p_item_sequence=>40 +,p_item_plug_id=>wwv_flow_api.id(14219049972378938) +,p_use_cache_before_default=>'NO' +,p_display_as=>'NATIVE_HIDDEN' +,p_is_persistent=>'N' +,p_attribute_01=>'Y' +); +wwv_flow_api.create_page_item( + p_id=>wwv_flow_api.id(14708084082370070) +,p_name=>'P952_DISABLE' +,p_item_sequence=>50 +,p_item_plug_id=>wwv_flow_api.id(14219049972378938) +,p_use_cache_before_default=>'NO' +,p_display_as=>'NATIVE_HIDDEN' +,p_is_persistent=>'N' +,p_attribute_01=>'Y' +); +wwv_flow_api.create_page_process( + p_id=>wwv_flow_api.id(14708878614370076) +,p_process_sequence=>10 +,p_process_point=>'AFTER_HEADER' +,p_process_type=>'NATIVE_PLSQL' +,p_process_name=>'ENABLE_TRIGGER' +,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( +'app.log_action(''ENABLE_TRIGGER'', app.get_item(''$TRIGGER''));', +'--', +'EXECUTE IMMEDIATE', +' ''ALTER TRIGGER '' || app.get_item(''$TRIGGER'') || '' ENABLE'';', +'')) +,p_process_clob_language=>'PLSQL' +,p_error_display_location=>'INLINE_IN_NOTIFICATION' +,p_process_when=>'P952_ENABLE' +,p_process_when_type=>'ITEM_IS_NOT_NULL' +); +wwv_flow_api.create_page_process( + p_id=>wwv_flow_api.id(14709218652370077) +,p_process_sequence=>20 +,p_process_point=>'AFTER_HEADER' +,p_process_type=>'NATIVE_PLSQL' +,p_process_name=>'DISABLE_TRIGGER' +,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( +'app.log_action(''DISABLE_TRIGGER'', app.get_item(''$TRIGGER''));', +'--', +'EXECUTE IMMEDIATE', +' ''ALTER TRIGGER '' || app.get_item(''$TRIGGER'') || '' DISABLE'';', +'')) +,p_process_clob_language=>'PLSQL' +,p_error_display_location=>'INLINE_IN_NOTIFICATION' +,p_process_when=>'P952_DISABLE' +,p_process_when_type=>'ITEM_IS_NOT_NULL' +); +wwv_flow_api.create_page_process( + p_id=>wwv_flow_api.id(14708444881370076) +,p_process_sequence=>30 +,p_process_point=>'AFTER_HEADER' +,p_process_type=>'NATIVE_PLSQL' +,p_process_name=>'GET_STATUS' +,p_process_sql_clob=>wwv_flow_string.join(wwv_flow_t_varchar2( +'FOR c IN (', +' SELECT t.status', +' FROM user_triggers t', +' WHERE t.trigger_name = app.get_item(''$TRIGGER'')', +') LOOP', +' app.set_item(''$STATUS'', c.status);', +'END LOOP;', +'')) +,p_process_clob_language=>'PLSQL' +,p_error_display_location=>'INLINE_IN_NOTIFICATION' +); +wwv_flow_api.component_end; +end; +/ diff --git a/apex/f770/install.sql b/apex/f770/install.sql index d08323c..29186af 100644 --- a/apex/f770/install.sql +++ b/apex/f770/install.sql @@ -126,6 +126,7 @@ prompt --install @@application/pages/page_00940.sql @@application/pages/page_00950.sql @@application/pages/page_00951.sql +@@application/pages/page_00952.sql @@application/pages/page_00970.sql @@application/pages/page_00990.sql @@application/pages/page_09999.sql diff --git a/views/user_obj_triggers.sql b/views/user_obj_triggers.sql new file mode 100644 index 0000000..567213f --- /dev/null +++ b/views/user_obj_triggers.sql @@ -0,0 +1,62 @@ +CREATE OR REPLACE VIEW user_obj_triggers AS +WITH x AS ( + SELECT + app.get_app_id() AS app_id, + app.get_item('$TABLE_NAME') AS table_name, + app.get_item('$TRIGGER_NAME') AS trigger_name, + app.get_date_item('G_TODAY') AS today + FROM users u + WHERE u.user_id = app.get_user_id() +), +r AS ( + SELECT /* materialize */ + l.action_name AS table_name, + COUNT(l.log_id) AS count_calls, + SUM(TO_NUMBER(REGEXP_SUBSTR(l.arguments, '"inserted":"?(\d+)', 1, 1, NULL, 1))) AS count_inserted, + SUM(TO_NUMBER(REGEXP_SUBSTR(l.arguments, '"updated":"?(\d+)', 1, 1, NULL, 1))) AS count_updated, + SUM(TO_NUMBER(REGEXP_SUBSTR(l.arguments, '"deleted":"?(\d+)', 1, 1, NULL, 1))) AS count_deleted + FROM x + JOIN logs l + ON l.created_at >= x.today + AND l.created_at < x.today + 1 + AND l.app_id = x.app_id + AND l.flag = 'G' + AND l.action_name = NVL(x.table_name, l.action_name) + GROUP BY l.action_name +) +SELECT + t.table_name, + g.trigger_name, + -- + CASE + WHEN g.trigger_name = t.table_name || '__' -- default trigger name + AND g.trigger_type = 'COMPOUND' + AND g.triggering_event = 'INSERT OR UPDATE OR DELETE' + AND g.before_statement = 'YES' + AND g.before_row = 'YES' + AND g.after_row = 'YES' + AND g.after_statement = 'YES' + AND g.status = 'ENABLED' + THEN 'Y' + END AS is_valid, + -- + r.count_calls, + r.count_inserted, + r.count_updated, + r.count_deleted, + -- + o.last_ddl_time +FROM user_tables t +CROSS JOIN x +LEFT JOIN user_triggers g + ON g.table_name = t.table_name +LEFT JOIN user_objects o + ON o.object_name = g.trigger_name +LEFT JOIN user_mviews v + ON v.mview_name = t.table_name +LEFT JOIN r + ON r.table_name = g.table_name +WHERE t.table_name = NVL(x.table_name, t.table_name) + AND t.table_name NOT LIKE '%\_%$' ESCAPE '\' + AND v.mview_name IS NULL; +