PL/SQL used for ETL processing: what is best practice?
I am new to this forum; I hope I am posting in the right one.
To populate our data warehouse, we use PL/SQL stored procedures and the approach always is:
- pre processing: disable constraints and drop indexes, truncate table (in some cases), alter table.. enable row movement, alter table.. shrink space.
- load: inserts/updates
- post processing: enable constraints and create indexes.
My question: some of the DDL invalidates our procedures, and in some instances even causes the dreadful ora-4068. Is there a way to avoid the invalidation/ora-4068? Does anyone have a best practice for doing this kind of ETL on Oracle?