sql >> Database >  >> RDS >> Oracle

Hoe bereken je een kolomwaarde in orakel 10g?

10g heeft deze functie niet. Gebruik in plaats daarvan een weergave:

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;

Het alternatief zou zijn om de kolom in de tabel te hebben om de waarde te behouden met behulp van een trigger -- voor zowel updates als invoegingen. Ik zou willen voorstellen om de weergave te gebruiken, omdat het onderhouden van de triggers veel onderhoudskosten met zich meebrengt.

EDIT (door Jason):

In 11g kunt u een virtuele kolom maken in de tabeldefinitie.

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. Detecteer, verwijder lege kolommen en werk de database bij in sql, oracle

  2. Hoe ResultSet-objecten in Java samen te voegen?

  3. mijn beste praktijk voor sql met php voor het tellen van rijen

  4. Stopwoorden en MySQL Booleaanse fulltext