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-ID: 98342

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

Ausgedruckt am: 26.11.2024 um 10:11 Uhr

27234
27234 02.10.2008 um 16:19:17 Uhr
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é
Biber
Biber 02.10.2008 um 17:17:20 Uhr
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
27234
27234 06.10.2008 um 10:41:26 Uhr
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é
Biber
Biber 06.10.2008 um 10:56:03 Uhr
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
scirocco790
scirocco790 06.10.2008 um 12:46:47 Uhr
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.
27234
27234 06.10.2008 um 17:09:42 Uhr
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é
scirocco790
scirocco790 07.10.2008 um 08:52:04 Uhr
Goto Top
DBMS_JOBS? Wo finde ich das? Ist das ein Skript zum nachinstallieren?
27234
27234 07.10.2008 um 10:07:15 Uhr
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é