sql >> Database teknologi >  >> RDS >> Oracle

Hvordan beregner man en kolonneværdi i oracle 10g?

10g har ikke denne funktion. Brug i stedet en visning:

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;

Alternativet ville være at have kolonnen i tabellen for at opretholde værdien ved hjælp af en trigger - for både opdateringer og indsættelser. Jeg vil foreslå, at du bruger visningen, fordi vedligeholdelse af triggere tilføjer en masse vedligeholdelsesomkostninger.

EDIT (af Jason):

I 11g kan du oprette en virtuel kolonne i tabeldefinitionen.

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
)


  1. Hvordan indstiller man tilstand i følgende kode for at markere den aktuelle side i paginering?

  2. Hvordan løses MySQL innodb Venter på tabelmetadatalås på TRUNCATE TABLE?

  3. Gensample på tidsseriedata

  4. SQL Sorter efter streng, tal vises sidst