Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment calculer une valeur de colonne dans Oracle 10g ?

10g n'a pas cette fonctionnalité. Utilisez plutôt une vue :

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;

L'alternative serait d'avoir la colonne dans la table pour maintenir la valeur à l'aide d'un déclencheur - pour les mises à jour et les insertions. Je suggérerais d'utiliser la vue, car le maintien des déclencheurs ajoute beaucoup de frais généraux de maintenance.

EDIT (par Jason):

Dans 11g, vous pouvez créer une colonne virtuelle dans la définition de table.

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
)