How to manage package dependencies changing

I have a CONSTANTS package in my database, filled with a variety of magic numbers that can be referred to throughout the program.

In other packages, I might call something like CONSTANTS.gco_product_atlas. In the CONSTANTS package, this gco_product_atlas will have some sort of value, such as NUMBER(1,0) := 4.

However, I’ve noticed that if I change this number to 6, every single package that points to this variable fails (i.e. appears with a pink X). The only way I know to make them all work again is to manually open each one and execute them as scripts. Nothing needs changed, they just need re-executed.

I’m assuming I’m missing something and there’s an easier way to do this. I didn’t think it would cause an issue as I didn’t think these values were being evaluated until run-time. I thought as long as they existed at compile-time, things would be okay. What am I doing wrong (if anything) and what is the way to handle this?

The quickest way to get everything valid again is to rt-click a package in the schema browser and choose “Compile invalid objects”.