scirocco790
Goto Top

automatisierter Export aus Oracle?

Wir haben eine Oracle 9i (9.2.0.8) als Produ-Datenbank in Verwendung. Wir möchten nun diverse Exporte in CSV oder TXT Dateien vornehmen. Wie kann ich so etwas am besten automatisieren?
Eine meiner Ideen wäre SQL Skripte mit Oracle SQL Plus per Windows Task Manger auszuführen. Nur weiß ich eben nicht ob man per Oracle SQL CSV oder TXT exportieren kann?

Content-Key: 98342

Url: https://administrator.de/contentid/98342

Printed on: April 25, 2024 at 10:04 o'clock

Mitglied: 27234
27234 Oct 02, 2008 at 14:19:17 (UTC)
Goto Top
Hallo,

meines Wissens liefert Oracle von Hause aus kein Tool mit, welches TXT oder CSV erzeugt.
Mir fallen aber spontan zwei Möglichkeiten ein.
1. selbst ein SQL-Skript basteln
z.B.
';' spalte2 ';'
Diese Ausgabe dann in eine Datei "spoolen".

2. Tabellen in ACCESS oder EXCEL einbinden und dort eine Abfrage als TXT oder CSV ausgeben.


Gruß - René
Member: Biber
Biber Oct 02, 2008 at 15:17:20 (UTC)
Goto Top
Moin scirocco790 und bolle97,
meines Wissens liefert Oracle von Hause aus kein Tool mit, welches TXT oder CSV erzeugt
Doch, es sollte eigentlich bei einer Serverinstallation die sqlldr.exe (SQL-Loader) babei sein.
Und einfacher gehts dann kaum: siehe hier.

Grüße
Biber
Mitglied: 27234
27234 Oct 06, 2008 at 08:41:26 (UTC)
Goto Top
Hallo,

vielleicht verstehe ich jetzt was nicht richtig, aber scirocco790 möchte "exportieren", der SQL-Loader "importiert" oder wie der Name schon sagt "lädt" Daten. Zum "rausholen" von Daten aus Oracle wird der SQL-Loader nicht dienlich sein.

Gruß - René
Member: Biber
Biber Oct 06, 2008 at 08:56:03 (UTC)
Goto Top
Uuuups, Bolle97,

hast naturlich Recht.
Dann also doch Plan B - über SQLPlus ein vorgefertigtes SQL aufrufen, das in eine entsprechende Ausgabedatei spooled, also Deine Variante 1.
Wenn Dein Select in so einen Rahmen gestellt wird...
SET ECHO OFF;
SET FEEDBACK OFF;
SET HEADING OFF;
SET LINESIZE 555;
SPOOL D:\EinExport.csv
SELECT {whatever};
SPOOL OFF;
dann sollte es passen.

Grüße
Biber
Member: scirocco790
scirocco790 Oct 06, 2008 at 10:46:47 (UTC)
Goto Top
Okay: Ich lege mir einen Task an den Windows ausführt. Dieser Task enthält mein SQL Skript.
Sollte ja soweit ohne Probleme gehen, aber eine Frage noch: Gibt es unter Oracle direkt einen Möglichkeit "Jobs" anzulegen die man mit einem Zeitplan versehen kann?
Wie gesagt, die 9i Patch 9.2.0.8 ist im Einsatz.
Auf meinen MS-SQL Servern geht sowas ja extrem einfach. Bei Oracle scheints ja nicht so einfach zu sein.
Mitglied: 27234
27234 Oct 06, 2008 at 15:09:42 (UTC)
Goto Top
Hallo,

ja, das geht, ist in der 9er Version aber noch sehr viel Tipparbeit. Schau Dir mal dazu das Package "DBMS_JOBS" an.
Wenn Du dabei Hilfe benötigst dann melde Dich noch mal.

Gruß - René
Member: scirocco790
scirocco790 Oct 07, 2008 at 06:52:04 (UTC)
Goto Top
DBMS_JOBS? Wo finde ich das? Ist das ein Skript zum nachinstallieren?
Mitglied: 27234
27234 Oct 07, 2008 at 08:07:15 (UTC)
Goto Top
Hallo,

also erstens lautet der Name "DBMS_JOB" (also ohne S am Ende, habe mich verschrieben), zweitens ist das ein Standard-Package, also bei jeder Installation dabei und drittens findest Du die Beschreibung in der Oracle-Dokumentation (ist als CD bzw. DVD immer mit dabei) unter dem Stichwort "PL/SQL Packages and Types Reference" (jedenfalls in Version 10g).
Ich habe jetzt keine 9er Doku mehr zur Hand, ist aber ähnlich. Vorteilhaft wäre auch, wenn noch nicht geschehen, wenn Du dich bei der Oracle Metalink anmelden würdest, dort findet man in der Knowledge Base zahlreiche Beispiele wie man Jobs plant.
https://metalink2.oracle.com/

Gruß - René