Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie berechnet man einen Spaltenwert in Oracle 10g?

10g hat diese Funktion nicht. Verwenden Sie stattdessen eine Ansicht:

create table ord_tbl
(
ord_id number(10) primary key,
ord_name varchar2(20),
quantity number(20),
cost_per_item number(30),
ord_date date
);

create view vw_ord_tbl as
    select ord_id, ord_name, quantity, cost_perId, (quantity*cost_per_item) as total_cost, ord_date
    from ord_tbl;

Die Alternative wäre, die Spalte in der Tabelle so zu haben, dass der Wert mithilfe eines Triggers beibehalten wird – sowohl für Aktualisierungen als auch für Einfügungen. Ich würde vorschlagen, die Ansicht zu verwenden, da die Pflege der Trigger viel Wartungsaufwand verursacht.

BEARBEITEN (von Jason):

In 11g können Sie eine virtuelle Spalte in der Tabellendefinition erstellen.

create table ord_tbl (
    ord_id number(10) primary key,
    ord_name varchar2(20),
    quantity number(20),
    cost_per_item number(30),
    total_cost as (quantity*cost_per_item),
    ord_date date
)