6 Stimmen

Prozedurpaket und Paketkörper PL/SQL ändern

Ich möchte ein inkremetales Skript für meine Oracle-Datenbank erstellen. Ich möchte nur eine Prozedursignatur und den Prozedurenkörper ändern, der Rest soll gleich bleiben.

Wie kann ich dies erreichen, ohne das gesamte Paket mit create oder replace neu zu erstellen?


Beispiel

Altes Paket

PROCEDURE LOAD_ITEMS(OUTCURSOR OUT SYS_REFCURSOR);

Neues Paket

PROCEDURE LOAD_ITEMS(P_ID IN CHAR, OUTCURSOR OUT SYS_REFCURSOR);

Edita:
Mit inkrementellem Skript meine ich ein Upgrade-Skript von einer früheren Version auf diese. Und ich möchte nur das aktuelle Verfahren ändern, NICHT ALLE.

22voto

Peter Lang Punkte 52229

Wenn Sie eine Prozedur in der Paketspezifikation ändern wollen, dann müssen Sie
CREATE OR REPLACE
die gesamte Paketspezifikation und den Paketkörper mit dem geänderten Code.


Während die ALTER PACKAGE Anweisung kann verwendet werden, um das gesamte Paket neu zu kompilieren, es

[...] ändert nicht die Deklaration oder Definition eines bestehenden Pakets. Um ein Paket neu zu deklarieren oder neu zu definieren, verwenden Sie die CREATE PACKAGE oder die CREATE PACKAGE BODY Anweisung mit der OR REPLACE Klausel.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X