Question

Is there a patch for Heavy Cleanup error: Security_SYS.Cleanup ORA-12899 ?

  • 28 October 2021
  • 5 replies
  • 350 views

Userlevel 1
Badge +2
  • Do Gooder (Customer)
  • 4 replies

Nightly we receive a Warning from each execution of the “Heavy Cleanup” Database Background Job.

Is there an existing fix, and can anyone explain the risks we may encounter prior to addressing this?

 

Description:

Schedule id 83 : Heavy Cleanup

 

Function

Batch_Sys.Fnd_Heavy_Cleanup_

 

Text:

Security_SYS.Cleanup__ failed ORA-12899: value too large for column "IFSAPP"."SECURITY_SYS_PRIVS_TAB"."TABLE_NAME" (actual: 40, maximum: 30)

 

Status Type:

WARNING


This topic has been closed for comments

5 replies

Userlevel 7
Badge +31

Hi @tking,

This is usually caused by a custom view or package created by someone.


Please run following queries on the database to identify any database objects that exceed this limits
 

SELECT * FROM (
SELECT grantee, table_name, privilege
FROM all_tab_privs_made
WHERE owner = 'IFSAPP' AND privilege IN ('EXECUTE', 'SELECT')
AND grantee IN (SELECT role FROM fnd_role_tab)
AND table_name IN (SELECT object_name FROM user_objects WHERE object_type IN ('PACKAGE', 'VIEW')
AND grantor = 'IFSAPP')) t
WHERE length(t.table_name) > 30;

 

select * from SYS.DBA_VIEWS 
where length(view_name) > 30;

 

select * from SYS.DBA_OBJECTS
where owner = 'IFSAPP' and object_type = 'PACKAGE' and length(object_name) > 30 and object_name like '%API';


select * from SYS.DBA_TABLES where length(table_name) > 30;

Hope this helps!

Userlevel 1
Badge +2

Thank you Charith.

I appreciate the insight and the code.

 

Interestingly “no rows selected.” from each of the queries.

 

Tim

 

Userlevel 5
Badge +12

If there are custom objects (tables, sequences) grants done through SQLPLUS those can be found by altering Charith’s first SQL a little as below.

 

SELECT *

  FROM (SELECT grantee, table_name, privilege

          FROM all_tab_privs_made

         WHERE owner = 'IFSAPP'

           AND privilege IN ('EXECUTE', 'SELECT')

           AND grantee IN (SELECT role FROM fnd_role_tab)

           AND table_name IN (SELECT object_name

                                FROM user_objects

                               WHERE object_type IN

                                     ('PACKAGE', 'VIEW', 'TABLE', 'SEQUENCE')

                                 AND grantor = 'IFSAPP')) t

 WHERE length(t.table_name) > 30;

Userlevel 1
Badge +2

Ruchira,

Many thanks to you also for taking the time to reply with a suggestion.

Unfortunately, your query also results in no rows selected.

Sincerely,

Tim

Userlevel 5
Badge +12

hmmm maybe a col comment is causing the issue. My last SQL for the week 

 

SELECT table_name,

       Dictionary_SYS.Comment_Value_('LU', comments) 

       FROM fnd_tab_comments WHERE LENGTH(Dictionary_SYS.Comment_Value_('LU', comments)) > 30