Tôi có một thủ tục tiên tri gọi một vài thủ tục khác.
THỦ TỤC1 THỦ TỤC2
THỦ
TỤC 3
..
Bây giờ những gì xảy ra là PROCEDURE2
đang thực hiện DDL ( EXECUTE IMMEDIATE 'DDL PROCESS'
) trên một số bảng phụ thuộc đang được sử dụng trong các quy trình tiếp theo 3 trở đi. Điều này chạy tốt cho đến khi nó chạm vào PROCEDURE3
nơi nó ném ORA-06508 - Program / Unit being called not found
.
Chúng tôi không thể sửa đổi nó không sử dụng DDL, Chúng tôi phải sử dụng chúng. Tôi đã thử biên dịch lại sau các câu lệnh DDL nhưng nó không hoạt động ( ALTER PROCEDURE PROCEDURE3 RECOMPILE
) cả trong PROCEDURE1
hoặc ngoài PROCEDURE2
.
Tôi nghi ngờ rằng PROCEDURE1
bản thân nó trở nên không hợp lệ và việc biên dịch nó trong thời gian chạy sẽ gây ra vòng lặp vô tận. Tôi đã thử, không hoạt động.
Vì vậy, tôi cần sử dụng một số thủ thuật có thể làm cho các thủ tục này hợp lệ trở lại trong thời gian chạy sau khi DDL được thực hiện trên các đối tượng phụ thuộc.
Cảm ơn trước cho ai tham gia trả lời.