Default wert fuer sql select statement

Muss eine Tabelle in der SQL Datenbank mit Daten füllen. Diese Daten nimmt er sich von eine Quelldatei. Aber es sind Tabelleneinträge vorhanden, denen kein Wert übergeben wird aus der Quelldatei.
Ich möchte diese mit einem Default Wert füllen. Wie kann ich denen ein Default wert übergeben?

Danke im voraus…

Gruß
Joe

hi!

  1. welche datenbank
  2. welche quelldatei
  3. wie wird befüllt (manuell, sqlloader, etc.)

die lösungen:
a) (unter oracle) nvl(wert,default_wert)
b) default-value beim anlegen der tabelle
c) (unter oracle) default-value im before-insert-trigger auf tabelle setzen

grüße,
tomh

  1. welche datenbank

sql Datenbank

  1. welche quelldatei

mehrere *.dat

  1. wie wird befüllt (manuell, sqlloader, etc.)

sqlloader im unix

Ich kenn mich nicht wirklich damit aus, ist mein erstes mal mit sql, was muss ich denn genau schreiben?

Also die Felder heißen so:

ARCHIV_ID

SATZ_ID

SPEICHER_DAT

Gruß

JOE

Hallo Joe,
SQL heisst soviel wie simple querying language und ist eine
Sprache, keine Datenbank wie access, mysql, oracle, db2 usw.

kannst du die Zieltabelle verändern ?
dann kannst du auch einen defaultwert für jede spalte setzen:
ALTER TABLE tabelle Modify (SATZ_ID DEFAULT 99);

Gruss
kyle

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Kyle!

SQL heisst soviel wie simple querying language und ist eine
Sprache, keine Datenbank wie access, mysql, oracle, db2 usw.

Gebe Dir (fast) uneingeschränkt recht, bloß heißt SQL " Structured Query Language".

Gruß,
Martin

Was muss ich denn genau wo schreiben?

Es soll vom SQLLOADER ausführbar sein.
So sieht der Quelltext aus. Einige Werte müssen auf default gesetzt werden.
Wie mach ich das?


INTO TABLE XML_ARCHIV_INDEX
FIELDS TERMINATED BY " " OPTIONALLY ENCLOSED BY „[and]“
TRAILING NULLCOLS
( INDEX_ID,
VERFOLGUNGS_ID,
ARCHIV_TYP,
ARCHIV_ID,
SATZ_ID,
SPEICHER_DAT,
ERSTELL_DAT „to_date(:ERSTELL_DAT, ‚yyyy-mm-dd‘)“,
MQS_QUEUE,
FEHLER_NR,
FEHLERZUSTAND_KNZ,
XML_TYP,
ZUNR_EXT,
KOMM_PARTNR,
NAME,
NAME,
VORNAME,
GEB_NAME,
GEB_DATUM,
GEB_ORT,
ADR_STRASSE,
ADR_PLZ,
ADR_ORT )

MFG

JOE

Hi,
wärs mit
Structured / Sequential / System Query Language ?? *g*
So wie SOS, klang am Anfang toll, und nachher hat man was dazuerfunden :wink:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Joe,

da weise ich gern nochmal auf Tomh hin:
Welche Datenbank benutzt du ?
MySQL, Oracle, Access, DB, POSIX, PostgreSQL ???

Bei Oracle könntest du z.B. PL/SQL-Code mitbenutzen um damit
deine Daten vorher noch beeinflussen zu können.
Ansonsten wie gesagt, wenn du die Tabelle, in der der Loader was
schreiben soll verändern kannst/darfst, kannst du auch z.B. im
SQL*Plus:
ALTER TABLE Modify ( DEFAULT 99);
setzen und damit allgemein den Default für die Tabellen-Felder.
Oder du schreibst einen Trigger, ein gespeichertes Programm, welches
ausgeführt wird und Aktionen durchführt, bevor ein Insert oder Update
stattfindet…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo nochmal, Kyle!

Na gut, ich geb ja zu, dass auch andere Deutungen des Akronyms existieren. Erfunden hat die Sprache ja irgendein Fuzzy bei IBM und erst einige Zeit später gab es dann einen ANSI Standard dazu. Der spricht allerdings genauso wie IBM (http://as400bks.rochester.ibm.com/iseries/v5r1/ic292…) definitiv von „Structured“.

So, das musste mal gesagt werden :wink:

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]