scripts/collector/oracle/sql/extracts/sourcecode.sql (55 lines of code) (raw):
--
-- Copyright 2024 Google LLC
--
-- Licensed under the Apache License, Version 2.0 (the "License").
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- https://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
--
spool &outputdir/opdb__sourcecode__&v_tag
prompt PKEY|CON_ID|OWNER|TYPE|SUM_NR_LINES|QT_OBJS|SUM_NR_LINES_W_UTL|SUM_NR_LINES_W_DBMS|COUNT_EXEC_IM|COUNT_DBMS_SQL|SUM_NR_LINES_W_DBMS_UTL|SUM_COUNT_TOTAL|DMA_SOURCE_ID|DMA_MANUAL_ID
WITH vsrc AS (
SELECT pkey,
con_id,
owner,
TYPE,
SUM(nr_lines) sum_nr_lines,
COUNT(1) qt_objs,
SUM(count_utl) sum_nr_lines_w_utl,
SUM(count_dbms) sum_nr_lines_w_dbms,
SUM(count_exec_im) count_exec_im,
SUM(count_dbms_sql) count_dbms_sql,
SUM(count_dbms_utl) sum_nr_lines_w_dbms_utl,
SUM(count_total) sum_count_total
FROM (SELECT :v_pkey AS pkey,
&v_a_con_id AS con_id,
owner,
name,
TYPE,
MAX(line) NR_LINES,
COUNT(CASE
WHEN LOWER(text) LIKE '%utl_%' THEN 1
END) count_utl,
COUNT(CASE
WHEN LOWER(text) LIKE '%dbms_%' THEN 1
END) count_dbms,
COUNT(CASE
WHEN LOWER(text) LIKE '%dbms_%'
AND LOWER(text) LIKE '%utl_%' THEN 1
END) count_dbms_utl,
COUNT(CASE
WHEN LOWER(text) LIKE '%execute%immediate%' THEN 1
END) count_exec_im,
COUNT(CASE
WHEN LOWER(text) LIKE '%dbms_sql%' THEN 1
END) count_dbms_sql,
COUNT(1) count_total
FROM &v_tblprefix._source a
WHERE owner NOT IN
@&EXTRACTSDIR/exclude_schemas.sql
GROUP BY :v_pkey,
&v_a_con_id ,
owner,
name,
TYPE)
GROUP BY pkey,
con_id,
owner,
TYPE)
SELECT pkey , con_id , owner , type , sum_nr_lines , qt_objs ,
sum_nr_lines_w_utl , sum_nr_lines_w_dbms , count_exec_im , count_dbms_sql , sum_nr_lines_w_dbms_utl , sum_count_total,
:v_dma_source_id AS DMA_SOURCE_ID, :v_manual_unique_id AS DMA_MANUAL_ID
FROM vsrc;
spool off