Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Resolved issues with regex for DDL trigger processing.
  • Loading branch information
jgebal committed Jun 16, 2019
commit 8defe567d102c6d92ee56eb3be4263de8e984e61
9 changes: 6 additions & 3 deletions source/core/annotations/ut_annotation_manager.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -264,14 +264,17 @@ create or replace package body ut_annotation_manager as
l_sql_clob clob;
l_sql_lines ut_varchar2_rows := ut_varchar2_rows();
l_result sys_refcursor;
l_sql_text ora_name_list_t := a_sql_text;
begin
if a_parts > 0 then
for i in 1..a_parts loop
ut_utils.append_to_clob(l_sql_clob, l_sql_text(i));
ut_utils.append_to_clob(l_sql_clob, a_sql_text(i));
end loop;
l_sql_clob := ut_utils.replace_multiline_comments(l_sql_clob);
l_sql_clob := regexp_replace(l_sql_clob, '^(.*?[^-]{2,}\s*create(\s+or\s+replace){0,1}(\s+(editionable|noneditionable))?\s+?)((package|type).*)', '\5', 1, 1, 'ni');
-- replace comment lines that contain "-- create or replace"
l_sql_clob := regexp_replace(l_sql_clob, '^.*[-]{2,}\s*create(\s+or\s+replace).*$', modiafier => 'mi');
-- remove the "create [or replace] [[non]editionable] " so that we have only "type|package" for parsing
-- needed for dbms_preprocessor
l_sql_clob := regexp_replace(l_sql_clob, '^(.*?\s*create(\s+or\s+replace)?(\s+(editionable|noneditionable))?\s+?)((package|type).*)', '\5', 1, 1, 'ni');
l_sql_lines := ut_utils.convert_collection( ut_utils.clob_to_table(l_sql_clob) );
end if;
open l_result for
Expand Down