Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak obliczyć wartość kolumny w Oracle 10g?

10g nie ma tej funkcji. Zamiast tego użyj widoku:

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;

Alternatywą byłoby posiadanie kolumny w tabeli, aby zachować wartość za pomocą wyzwalacza — zarówno dla aktualizacji, jak i wstawiania. Sugerowałbym użycie widoku, ponieważ utrzymywanie wyzwalaczy wiąże się z dużym obciążeniem konserwacyjnym.

EDYCJA (przez Jasona):

W 11g możesz stworzyć wirtualną kolumnę w definicji tabeli.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego ten wyzwalacz nie działa? Mówi nieprawidłowy identyfikator

  2. Czas trwania danych w globalnej tabeli tymczasowej?

  3. Czy istnieje sposób na użycie RSA w Oracle/PL SQL?

  4. Błąd ORA-01005 podczas łączenia z ODP.Net

  5. Jak wykonać interpolację liniową za pomocą Oracle SQL?