2010-02-04 12 views
5

Korzystanie z Oracle 10g.Aktualizacja pojedynczej procedury w pakiecie Oracle

Piszę skrypt, aby zastosować zmiany delta wprowadzone w naszym systemie rozwoju do naszego systemu etapów.

Czy istnieje sposób modyfikowania lub wstawiania pojedynczej procedury w pakiecie bez uwzględniania całej zawartości pakietu w moim skrypcie? Myślę, że odpowiedź brzmi "nie", ale chciałem mieć pewność, ponieważ dodanie zmian w zawartości zmodyfikowanych pakietów będzie niewielkie, gdy zmiany będą niewielkie.

+1

Jeśli wydaje się to brzydkie, być może twoje paczki są nieco na dużym rozmiarze? - np. jeśli zbyt wiele niepowiązanych procedur i funkcji jest dołączonych do "superpakietów", dobrym pomysłem może być podzielenie ich wzdłuż linii logicznych na osobne pakiety. –

Odpowiedz

4

Przepraszam, ale twój instynkt jest prawidłowy. Jednostką zmiany jest PAKIET CIAŁA.

Nie wiesz, dlaczego uważasz, że jest brzydka. z pewnością jest to tylko kwestia wywołania skryptu dla paczki?

2

Nie, opakowanie musi być wymienione jako całość. Zamiast umieszczać kod dla kilku pakietów w jednym skrypcie, utworzę plik na specyfikację pakietu i plik na treść pakietu. Następnie można napisać "meta-skrypt", aby uruchomić wymagane zmiany pakietów w SQL Plus:

+0

można złamać tę koncepcję jeszcze bardziej i mieć plik na procedurę w nagłówku i treści paczki. W ten sposób twój "meta-skrypt" może zebrać potrzebne elementy w czasie kompilacji, ale ułatwia śledzenie zmian w systemie kontroli źródła, szczególnie w przypadku dużych procedur. – ninesided

+0

Masz na myśli podział skryptu treści pakietu na wiele plików z każdą procedurą treści pakietu w oddzielnym pliku? Eek. Pomyśl, że tego uniknę. Śledzenie zmian jest łatwiejsze w jednym pliku z różnicami. –

+0

Nie, nie, nie, nie miałem na myśli tego! Każdy plik zawiera jedną ** pełną ** specyfikację lub treść pakietu. –

0

W obliczu tego samego problemu. Po prostu stworzyłem oddzielny pakiet dla procedury, która często się zmienia.

Powiązane problemy