2016-03-28 4 views
-1

Ich versuche, einen automatisierten Prozess zum Aktualisieren von Datendefinitionskommentaren für eine Datenbank in Oracle zu erstellen. Hat jemand Erfahrung mit einer bestimmten gespeicherten Prozedur, die zum automatischen Aktualisieren von Spalteninformationen nach einem Ladevorgang verwendet werden kann? Ich versuche, eine Variable zu verwenden, weil wir diese Kommentarinformation nicht hart codieren können, da sie den Zweck der Automatisierung vereitelt. Vielen Dank!Automatisierter Prozess zum Aktualisieren von Datendefinitionskommentaren in Oracle

+1

Können Sie näher erläutern, was Sie zu tun versuchen. Sprechen Sie über Tabellen- und Spaltenkommentare? (die normalerweise verwendet werden, um zu beschreiben, welche Art von Daten in einer Tabelle oder Spalte gespeichert sind) Und aktualisieren Sie diese nach jedem Datenladen? Vielleicht ein paar Beispiele erklären. – ruudvan

+0

Ja, ich spreche über die Tabellen- und Spaltenkommentare, die nach jedem Laden aktualisiert werden. Momentan müssen Sie jeden Zeichenfolgenwert manuell eingeben (zB: COMMENT ON COLUMN employees.job_id IS 'abgekürzter Stellentitel';) Es gibt über 30.000 Kommentare, die aktualisiert werden müssen und daher müssen wir einen automatisierten Prozess erstellen, um dies zu erreichen Dies. – JohnCan2

+0

"die Tabellen- und Spaltenkommentare, die nach jedem Laden aktualisiert werden". Über welche Art von Ladung sprichst du? Der Grund, warum ich Sie gebeten habe, Beispiele zu geben, liegt darin, dass Tabellen- und Spaltenkommentare normalerweise nach dem Laden von Daten nicht aktualisiert werden. Sie werden zur Entwurfszeit erstellt, um zu beschreiben, was die Tabelle tut und welche Geschäftsfunktionalität sie bietet. Nach der Erstellung sollten sie normalerweise nur geändert werden, wenn sich die Beschreibung für die Spalte ändert. – ruudvan

Antwort

0

Wenn ich die Notwendigkeit nicht verstehe, dies zu tun, könnten Sie versuchen, dies zu erzeugen und als dynamisches SQL zu laufen. Unter der Annahme, die Liste der Tabellen und Spalten und teh Kommentare einige Regeln beachten:

SET SERVEROPUTPUT ON 
SPOOL colcomm.sql 
DECLARE 
     CURSOR c1 IS 
      SELECT table_name, column_name 
      FROM user_tab_columns 
      WHERE table_name like 'fred%'; 
     vCmd VARCHAR2(500); 
    BEGIN 
     FOR r1 IN c1 LOOP 
      vCmd := 'COMMENT ON COLUMN ' || r1.table_name || '.' || r1.column_name || ' IS ''' || '????' || ''''; 
      DBMS_OUTPUT.PUT_LINE (vCmd); 
     END LOOP; 
    END; 

Run dies, Spule in eine Datei ausführen, dann die Spool-Datei.

Sie können andere Mechanismen wie UTL_FILE verwenden ist die Ausgabe zu groß, aber ich hoffe, das oben gibt Ihnen eine Idee.

Ich habe nicht versucht, dies durch "EXECUTE vCmd" zu laufen, um zu sehen, ob das funktionieren würde, wenn Sie so die Spule nicht brauchen würden.

Problem, das ich sehe, ist, woher weißt du, was Sie die Spaltenkommentare zu setzen?

Verwandte Themen