You are on page 1of 3

DECLARE

p_i NUMBER := 0;

CURSOR cur_obj_dtls
IS
SELECT DISTINCT owner, object_type, object_name
FROM all_objects a, rm_custom_string t
WHERE object_name LIKE t.strng
AND object_type IN
('PACKAGE', 'PACKAGE BODY', 'PROCEDURE', 'FUNCTION',
'MATERIALIZED VIEW', 'VIEW', 'TYPE', 'TYPE BODY');
BEGIN
FOR rec IN cur_obj_dtls
LOOP
BEGIN
IF rec.object_type IN ('MATERIALIZED VIEW', 'VIEW')
THEN
/* IF (p_i = 10)
THEN
CONTINUE;
ELSE
p_i := p_i + 1;
dbms_output.put_line('Object_name '||rec.object_name);
END IF;
*/
-- execute immediate 'truncate table xxsli_mv_source';
FOR i IN
(SELECT rec.object_name, rec.object_type, rec.owner,
REGEXP_SUBSTR (astr,
'[^'
|| CHR (10)
|| ']+',
1,
LEVEL
) text
FROM (SELECT DBMS_METADATA.get_ddl
(REPLACE (rec.object_type,
' ',
'_'
),
rec.object_name,
rec.owner
) astr
FROM DUAL)
CONNECT BY LEVEL <= regexp_count (astr, CHR (10), 1, 'i') + 1)
LOOP
INSERT INTO xxsli_mv_source
VALUES (i.object_name, i.object_type, i.owner, i.text);
END LOOP;
END IF;
FOR sch IN
(SELECT a.NAME, a.TYPE, owner, referenced_owner, referenced_name
FROM user_source a, dba_dependencies b
WHERE a.NAME = b.NAME
AND rec.object_type = a.TYPE
AND a.TYPE = b.TYPE
AND a.NAME = rec.object_name
AND b.referenced_owner NOT IN ('SYS', 'APPS', 'PUBLIC')
AND UPPER (REPLACE (REPLACE (a.text, ''''), '"')) LIKE
'%' || UPPER (b.referenced_owner || '.' || b.referenced_name)
|| '%'
UNION
SELECT a.object_name, a.object_type, owner, referenced_owner,
referenced_name
FROM apps.xxsli_mv_source a, dba_dependencies b
WHERE a.object_name = b.NAME
AND rec.object_type = a.object_type
AND a.object_name = rec.object_name
AND b.referenced_owner NOT IN ('SYS', 'APPS', 'PUBLIC')
AND UPPER (REPLACE (REPLACE (a.text, ''''), '"')) LIKE
'%' || UPPER (b.referenced_owner || '.' || b.referenced_name)
|| '%')
LOOP
INSERT INTO rm_object_dep_dtls_jj
(object_type, object_name, user_object_name,
app_code, app_name, dependent_id, dependent_type,
dependent_name, user_dependent_name,
dependent_app_code, dependent_app_name, custom_flag,
creation_date, created_by, last_update_date,
last_updated_by)
(SELECT rec.object_type object_type,
rec.object_name object_name,
rec.object_name user_object_name, rec.owner app_code,
NULL app_name, NULL dependent_id,
'SCHEMA' dependent_type, sch.owner dependent_name,
NULL user_dependent_name,
sch.owner dependent_app_code, NULL dependent_app_name,
'Y' custom_flag, SYSDATE, -1, SYSDATE, -1
FROM DUAL);

COMMIT;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
-- NULL;
DBMS_OUTPUT.put_line (SQLERRM|| ' ' || rec.object_name);
END;
END LOOP;

COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;

--TRUNCATE TABLE xxsli_mv_source


--Select distinct object_name from xxsli_mv_source
--where object_name in ( 'XXSLI_246_ALLOW_INTERCO_DEF_V'
-- ,'XXSLIPA_BICOS_NON_LABOR_LOV_V'
-- ,'XXSLI_PER_ASSIGNMENT_ST_TYPE_V')

--DROP TABLE APPS.XXSLI_MV_SOURCE CASCADE CONSTRAINTS;

--CREATE TABLE APPS.XXSLI_MV_SOURCE


--(
-- OBJECT_NAME varchar2(4000),
-- OBJECT_TYPE varchar2(4000),
-- OBJECT_OWNER varchar2(4000),
-- TEXT clob
--)

-- XXSLI_PA_EXPENDITURE_ITEMS_ALL

You might also like