RE: Package became INVALID

From: Chitale, Hemant K <Hemant-K.Chitale_at_sc.com>
Date: Wed, 6 Apr 2016 03:29:30 +0000
Message-ID: <2FE2AA1C5F8DEC478F58DF8DD32BA637173773_at_HKWPIPXMB03C.zone1.scb.net>



V$DATABASE_BLOCK_CORRUPTION entries wouldn’t be causing invalidation of the Package.

See MoS note 19450314.8 and Bug 19450314 and note 2110955.1 for another bug.

Do NOT test the patches / workarounds in your production environment until you’ve run multiple test rounds in your test environment.

For V$DATABASE_BLOCK_CORRUPTION, see MoS note 471716.1

Hemant K Chitale

From: oracle-l-bounce_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Eriovaldo Andrietta Sent: Wednesday, April 06, 2016 12:10 AM To: Kenneth Naim
Cc: ORACLE-L
Subject: Re: Package became INVALID

Thanks Ken for your attention.

It is what is happening. Everytime that I got new corrupted, I check in the dba_extents the object that is on it (block) and truncate or drop the object when it is possible. The interesting is : When I run select * from V$DATABASE_BLOCK_CORRUPTION ; It recovers 24 lines. I use dbv to mark the block and after it, occurs the errors again. So , I repeat the operation and I execute select * from V$DATABASE_BLOCK_CORRUPTION again; and It recovers the same 24 lines. My doubt is : In the first time I got 24 blocks , after the second moment getting error , I suppose new block should be added to the list of corrupted blocks.

It does not happened.

Regards
Eriovaldo

2016-04-04 11:08 GMT-03:00 Kenneth Naim <kennethnaim_at_gmail.com<mailto:kennethnaim_at_gmail.com>>: With corrupted blocks, depending on the cause and how recently they happened you may be able to repair them if you have an rman backup and archivelog with the block before any changes happened to it. Also depending on the object that is corrupt it may be able to be rebuilt, think index. If the table is temporary in nature, like a staging table it can be truncated and reloaded from the source.

Ken

From: Eriovaldo Andrietta [mailto:ecandrietta_at_gmail.com<mailto:ecandrietta_at_gmail.com>] Sent: Monday, March 28, 2016 12:06 PM
To: Kenneth Naim <kennethnaim_at_gmail.com<mailto:kennethnaim_at_gmail.com>> Cc: ORACLE-L <oracle-l_at_freelists.org<mailto:oracle-l_at_freelists.org>> Subject: Re: Package became INVALID

Thanks Ken for your answer.

I realized that in my application log, it has the error ORA-01578: ORACLE data block corrupted (file # NN, block # nnnnnn)

I used the DBV in order to set the block as corrupted, and ran again my application (pl/sql , loading data) and the issue occured again. more corrupted block.

I researched in the Oracle Suport and got these bugs: ​​
Bug 8753903 - ORA-4020 deadlock detected while trying to lock cursor build objects (Doc ID 8753903.8) Bug 16776922 - ORA-1578/ORA-600 block corruption messages on the temporary data blocks (Doc ID 16776922.8)

Also, the DISK where datafiles are hosted were used in the past (not too remote) with Oracle 11g and did not get in trouble using it.

So, I suspect that there is some bug related block corruption in Oracle 12c.

I am looking for it.

Thanks in advance.

Eriovaldo

2016-03-27 18:04 GMT-03:00 Kenneth Naim <kennethnaim_at_gmail.com<mailto:kennethnaim_at_gmail.com>>: If any of the underlying objects get changed the package will go invalid and will need to recompiled. If when you try to compile it again, it compiles then there isn’t anything to worry about but if it has an error then you need address the error. One common scenarios is that tf the package has a truncate table command in it (using an execute immediate) and the package later accesses that objects the package body will become invalid every time it runs.

Ken
From: oracle-l-bounce_at_freelists.org<mailto:oracle-l-bounce_at_freelists.org> [mailto:oracle-l-bounce_at_freelists.org<mailto:oracle-l-bounce_at_freelists.org>] On Behalf Of Eriovaldo Andrietta Sent: Sunday, March 27, 2016 4:58 PM
To: ORACLE-L <oracle-l_at_freelists.org<mailto:oracle-l_at_freelists.org>> Subject: Package became INVALID

​Hello,

I am in trouble with a package (note: this package uses a db_link in the code). I created it, did
alter packave pck compile;
alter package pck compile body;​

I check status it via :
select object_name, status, object_type from user_objects where status = 'INVALID'; The result of this query is : VALID for spec and body.

After It, I don´t run anything and I check again and the package body became invalid.

The package is compiled in the Oracle 12c (12.1.0.2.0)

​Any idea ?
How can I see who is putting the package in the INVALID status ?

Regards
Eriovaldo

This email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please delete all copies and notify the sender immediately. You may wish to refer to the incorporation details of Standard Chartered PLC, Standard Chartered Bank and their subsidiaries at https://www.sc.com/en/incorporation-details.html

--
http://www.freelists.org/webpage/oracle-l
Received on Wed Apr 06 2016 - 05:29:30 CEST

Original text of this message