Wie berechnen Sie eine Spalte in oracle 10g?
create table ord_tbl
(
ord_id number(10) primary key,
ord_name varchar2(20),
quantity number(20),
cost_per_item number(30),
total_cost number(30)--This colm shud be (quantity*cost_per_item),
ord_date date
)
Also, wenn ich Zeilen einfügen, die dann die 'total_cost' sollen automatisch erzeugt und in eine Tabelle eingefügt
- Ich würde sagen, dass Sie nicht setzen "total_cost" in der Tabelle, da die einfach berechnet, die aus anderen Spalten in der Zeile. Außerdem werden Sie wahrscheinlich Ihre Meinung ändern, wie Sie zur Berechnung der "total cost" verbuchen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
10g nicht über diese Funktion. Verwenden Sie stattdessen einen Blick:
Die alternative wäre es, die Spalte in der Tabelle zu halten, den Wert mit ein Auslöser für Aktualisierungen und Einfügungen. Ich würde vorschlagen, mit der Sicht, denn die Aufrechterhaltung der Trigger fügt eine Menge Wartungsaufwand.
BEARBEITEN (von Jason):
In 11g können Sie erstellen eine virtuelle Spalte in der Tabellendefinition.
Wie Gordon Linoff beantwortet, können Sie eine Ansicht erstellen. Alternativ können Sie einen trigger erstellen und speichern der ist-Wert:
Den Vorteil der Speicherung der Daten ist, dass Sie zugreifen können es schneller und index, wenn Sie müssen. Der Nachteil ist, dass Sie speichern redundanter Daten (es können zur Laufzeit errechnet werden) und es benötigt mehr Speicherplatz.
Ich würde Ihnen raten, zu verwenden, die auf den ersten Blick, und nur beginnen Sie das speichern der Werte in die Tabelle, wenn Sie diese "Cache" - version für die Leistung.