Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como calcular um valor de coluna no oracle 10g?

10g não tem esse recurso. Em vez disso, use uma visualização:

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;

A alternativa seria ter a coluna na tabela para manter o valor usando um gatilho -- tanto para atualizações quanto para inserções. Eu sugeriria usar a visão, porque manter os gatilhos adiciona muita sobrecarga de manutenção.

EDIT (por Jason):

No 11g você pode criar uma coluna virtual na definição da tabela.
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
)