Hallo Forumsteilnehmer,
ich brauche für meine Client-Anwendung eine Funktion, die das
Exportieren von Tabellendaten im CSV-Format ermöglicht. Da ein Select
* auf eine sehr große Tabelle dazu führt, dass der Client erstmal
längere Zeit gar nichts macht, wollte ich die Daten in mehreren
Durchläufen abwechselnd auslesen und auf die Platte schreiben.
Ich habe mich Serverseitig bereits schlau gemacht und mir folgenden
Code zurechtgebastelt:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| spool c:\test declare cursor c1 is select * from F_VBO_DC_OVERVIEW; type t_records is table of F_VBO_DC_OVERVIEW%ROWTYPE; records t_records; begin open c1; loop fetch c1 BULK COLLECT INTO records LIMIT 5; for i in 1..records.count loop dbms_output.put_line(records(i).MARKET_SHARE_PYM); end loop; exit when c1%notfound; end loop; close c1; end; / spool off |
Statt einem Spool in eine Datei will ich aber die Daten zur
Clientanwendung übertragen und dort sequentiell weiterverarbeiten vor
dem Speichern. HAt jemand eine Idee, wie ich das anstellen könnte? Ich
bräuchte sozusagen eine konstante Verbindung zur Datenbank während des
Fetchvorgangs mit Übertragung der Zwischenergebnisse... Als
DAtenbankkomponenten verwende ich die ODAC-Komponente von CoreLab, es
täte aber auch eine Lösung für dbExpress.
Danke für jeden Hinweis!!