Leider gibt es keine RENAME $oldname$ TO $newname$ für Stored-Procedures in Oracle. Dafür kann man folgendes kleines SQL-Skript benutzen:

DECLARE
    txt VARCHAR2(4000);
BEGIN
    SELECT dbms_metadata.get_ddl('&&type', UPPER('&&old'))
      INTO txt FROM dual;
 
    txt := REPLACE(txt, '&&old', '&&new');
    txt := REPLACE(txt, UPPER('&&old'), '&&new');
 
    EXECUTE IMMEDIATE txt;
    EXECUTE IMMEDIATE 'DROP '||&&type||' '||&&old;
 
END;
/
 
show errors;

Allerdings darf diese Store-Procedure nicht größer als 4000 Zeichen sein. Sonst müßte man mit CLOBs arbeiten.

Von admin, 6. September 2007, 16:13 Uhr

Kommentiere den Artikel oder setze einen Trackback

Bisher keine Kommentare zum Artikel

  1. Bisher keine Kommentare

Kommentiere den Artikel



Kommentare zu diesem Artikel über RSS 2.0-Feed verfolgen