RE: Package became INVALID

  • From: "Kenneth Naim" <kennethnaim@xxxxxxxxx>
  • To: "'Eriovaldo Andrietta'" <ecandrietta@xxxxxxxxx>
  • Date: Mon, 4 Apr 2016 10:08:17 -0400

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@xxxxxxxxx] ;
Sent: Monday, March 28, 2016 12:06 PM
To: Kenneth Naim <kennethnaim@xxxxxxxxx>
Cc: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
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@xxxxxxxxx 
<mailto:kennethnaim@xxxxxxxxx> >:

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@xxxxxxxxxxxxx <mailto:oracle-l-bounce@xxxxxxxxxxxxx>  
[mailto:oracle-l-bounce@xxxxxxxxxxxxx ;<mailto:oracle-l-bounce@xxxxxxxxxxxxx> ] 
On Behalf Of Eriovaldo Andrietta
Sent: Sunday, March 27, 2016 4:58 PM
To: ORACLE-L <oracle-l@xxxxxxxxxxxxx <mailto:oracle-l@xxxxxxxxxxxxx> >
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

 

 



 

 

Other related posts: