SQL-Skript zum Daten auslesen aus einer Oracle-DB

Hallo Freunde,

ich habe die Aufgabe erhalten, ein SQL-Skript zu schreiben, dass ohne
Benutzereingriff Werte aus einer Oracle-DB ausliest.

Da ich sehr geringe Kenntnisse habe, möchte ich um ein paar Tipps bitten:

Aufgabenbeschreibung:
Von einem NT-Rechner greife ich auf einen UNIX-Rechner zu. Beide Rechner
besitzen SQL und Oracle. Die ausgelesenen Daten sollen in eine Textdatei
geschrieben werden.

Wie könnte so ein SQL-Skript aussehen ?

Weitere Fragen :
Wie könnte ein SQL-Befehl zu folgenden Abfragen aussehen:

a) Welche Tabellen enthält die Oracle-DB ?
> select …?

b) Wie lese ich aus einer Tabelle x die Werte a b über den Zeitraum z, B,:
2.05.2000 bis 4.05.2000 aus ?
>…?

c) Wie schreibe ich diese in eine Textdatei ?
>…?

e) Wo kann ich weitere Informationen zu meiner Aufgabe erhalten ?

Für jede Antwort bin ich dir sehr dankbar

Bis bald
Wilhelm

hallöchen,

ich bin zwar auch nicht der sql-profi, hab aber schon mal unter aix ein paar skripte geschrieben, die daten aus oracle holen. hier meine vorschläge :

a) Welche Tabellen enthält die Oracle-DB

> select * from all_tables
—> bringt alle tabellen dieser instanz. „all_tables“ ist eine eigene oracle-tabelle, die alle tabellen und noch einige info’s zu ihnen enthält (z.b. owner)

b) Wie lese ich aus einer Tabelle x die
Werte a b über den Zeitraum z, B,:
2.05.2000 bis 4.05.2000 aus ?

wenn du irgendein feld in der tabelle hast, welches das datum enthält, dann ginge das so :
>select a b from x where datum >= 20000502 and datum textdatei.txt
oder in den einzelnen befehlen des scripts indem du dann auch hintendran >textdatei.txt oder >>textdatei.txt hängst.
das einfache „>“ überschreibt den inhalt der textdatei also nur am anfang verwenden, das doppelte „>>“ fügt den output in der textdatei hintendran.

e) Wo kann ich weitere Informationen zu
meiner Aufgabe erhalten ?

wenn ihr oracle habt, dann solltet ihr auch diverse handbücher dazubekommen haben und dort sollte zumindest eine sql-quickreference dabeibeisein.
so - ich hoffe, das hilft dir schon etwas weiter.

viel erfolg !
claudia

Für jede Antwort bin ich dir sehr dankbar

Bis bald
Wilhelm

wenn ihr oracle habt, dann solltet ihr
auch diverse handbücher dazubekommen
haben und dort sollte zumindest eine
sql-quickreference dabeibeisein.
so - ich hoffe, das hilft dir schon etwas
weiter.

Genauer gesagt wird es sich dabei um Online-Dokumentationen in doch recht großem Umfang handeln und zumindest teilweise direkt mitinstalliert.

HomerJ

Aufgabenbeschreibung:
Von einem NT-Rechner greife ich auf einen
UNIX-Rechner zu. Beide Rechner
besitzen SQL und Oracle. Die
ausgelesenen Daten sollen in eine
Textdatei
geschrieben werden.

Wie könnte so ein SQL-Skript aussehen ?

Du kannst entweder die ausgabe des scripts mit > bzw. >> am command prompt umleiten, oder aber die Kommandos "spool " bzw. „spool off“ verwenden (wenn Du das SQL*Plus von Oracle verwendest, andere Programme könnten diese Befehle nicht verstehen, da sie nicht Teil des SQL-Standards sind).

Weitere Fragen :
Wie könnte ein SQL-Befehl zu folgenden
Abfragen aussehen:

a) Welche Tabellen enthält die Oracle-DB
?
> select …?

s.u. („select * from all_tables;“ wobei Du wirklich alle Tabellen nur bekommst, wenn Du dabei als User „sys“ eingestiegen bist.)

b) Wie lese ich aus einer Tabelle x die
Werte a b über den Zeitraum z, B,:
2.05.2000 bis 4.05.2000 aus ?
>…?

s.u. zur Datumsformatierung sollte man allerdings immer die funktion to_date verwenden, also „select a, b from x where datecol between to_date(‚02052000‘,‚DDMMYYYY‘) and to_date(‚04052000‘,‚DDMMYYYY‘);“ wobei datecol die spalte in x ist, die Dir als Auswahlkriterium dienen soll.

c) Wie schreibe ich diese in eine
Textdatei ?
>…?

mit >, >> oder spool (siehe oben)

e) Wo kann ich weitere Informationen zu
meiner Aufgabe erhalten ?

In der Oracle Doku (ist ziemlich umfangreich und hilft Dir sicher weiter)

Für jede Antwort bin ich dir sehr dankbar

Bis bald
Wilhelm

Hi,
zunächst einmal: Wenn Du geringe Kenntnisse hast, ist es evtl. besser, ein Tool zu nehmen. Du kannst T.O.A.D. ausprobieren, das hat einen Datenbank-Navigator, mit dem Du alle Tabellen siehst, und unter anderem auch Tabelleninhalte exportieren kannst. Eine 30-Tage-Testversion findest Du unter:
http://www.quest.com/download.asp?body=/emaildatabas…
Ich finde das Tool klasse!

a) Welche Tabellen enthält die Oracle-DB
?
> select …?

Wie meine Vorgänger schon sagten: select … from all_tables;
all_tables ist eine View , die alle Dir zugänglchen Tabellen beinhaltet (alle eigenenen + alle, auf die Du Zugriffsberechtigung hast).
select … from user_tables zeigt alle eigenen Tabellen.
Als System eingeloggt, bzw. mit dem dba-Privileg , siehst Du unter dba_tables wirklich alle.
Empfehlenswert ist für Deine Zwecke wahrscheinlich eher user_tables.

b) und c) sind ja schon abschließend behandelt worden. :smile:

Gruß

J.