Nếu bạn có has_unpaid_bill
cột trong bảng ở vị trí đầu tiên? Nó phụ thuộc vào SYSDATE
. Yêu cầu có mùi như một cột ảo, nhưng - bạn không thể sử dụng SYSDATE
ở đó vì nó không phải là một hàm xác định. Do đó, làm thế nào về một chế độ xem thay vì? Giữ dữ liệu bạn cần trong bảng, nhưng truy vấn chế độ xem:
Bảng và một số bản ghi mẫu:
SQL> create table test
2 (id number,
3 last_bill_paid_date date
4 );
Table created.
SQL> insert into test values (1, date '2020-11-09');
1 row created.
SQL> insert into test values (1, date '2020-11-02');
1 row created.
Xem:
SQL> create or replace view v_test as
2 select id,
3 last_bill_paid_date,
4 case when trunc(sysdate) - last_bill_paid_date > 5 then 'Y'
5 else 'N'
6 end has_unpai_dbill
7 from test;
View created.
SQL>
SQL> select * from v_test;
ID LAST_BILL_ H
---------- ---------- -
1 09.11.2020 N
1 02.11.2020 Y
SQL>