Wieder war es eine Frage im OTN-Forum, die mich an etwas erinnert hat, das ich fast vergessen hatte: die Möglichkeit, mit Hilfe von XML-Funktionen innerhalb einer Query auf alle Tabellen zuzugreifen, die eine Spalte mit einem bestimmten Namen haben. Wenn ich z.B. herausfinden will, wie viele Datensätze in welchen Tabellen einer Bedingung WHERE DEPTNO = 20 genügen, dann erhalte ich die Antwort über:
-- 11.1.0.7 select owner , table_name , to_number( extractvalue( xmltype( dbms_xmlgen.getxml('select count(*) c from ' || owner || '.'|| table_name || ' where deptno = 20') ) ,'/ROWSET/ROW/C')) row_count from dba_tab_cols where column_name = 'DEPTNO' order by owner, table_name; OWNER TABLE_NAME ROW_COUNT ------------------------------ ------------------------------ ---------- SCOTT DEPT 1 SCOTT EMP 5
Google erinnert mich gerade daran, dass ich einen Verweis auf Marco Gralikes entsprechenden Artikel schon vor zwei Jahren hier untergebracht hatte, damals allerdings ohne Beispiel. Schon damals war dbms_xmlgen anscheinend nicht mehr unbedingt das Mittel der Wahl, erfüllt aber nach wie vor seinen Zweck.
Keine Kommentare:
Kommentar veröffentlichen