Wystąpił konkretny problem z naszą definicją tabeli Oracle (DDL) i jednym z naszych skryptów PL/SQL.Jak zminimalizować sprzężenie/zależność między fizycznymi zmianami DDL a zmianami PL/SQL?
Problem jest, nastąpiła zmiana w tabeli zmienia się od varchar(20)
do varchar(30)
Zmiana ta jednak nie była pilnie odzwierciedlenie w jednym z naszych PL skryptów/SQL użytkujących dane, co było jeszcze varchar(20)
, powodując błąd ORA-06502: PL/SQL: numeric or value error
podczas jednego z naszych testów regresji.
Chciałbym zasięgnąć porady od Oracle i ekspertów od bazy danych tutaj, czy napotkałeś takie scenariusze w przeszłości, w których nastąpiły zmiany w tabeli DDL i nie znalazły odzwierciedlenia w PL/SQL i jak sobie z tym poradzić luka.
Wiem, że jednym prostym sposobem byłaby jakaś forma egzekucji lub papierkowej roboty, ale czy zdarzyłoby się być piękniejszym lub eleganckim rozwiązaniem, tj. Sposobem, w jaki działają klucze obce, aby uniknąć anomalii wstawiania/aktualizacji/usuwania?
Dzięki!
+1 Cookie, jest geniuszem, przynajmniej dla mnie. –
+1 Generalnie to działa dobrze. Nadal musisz zachować ostrożność, jeśli istnieje oczekiwanie na ograniczenie wielkości. Jednym z przykładów może być adres, który ma być wydrukowany na kopercie, w przypadku której nie pasuje do powiększonej kolumny bazy danych. –
@Chin Boon, to z pewnością było coś, co zespół projektantów PL/SQL otrzymał! – DCookie