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?
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
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]
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
Gruß,
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]