Sollten Sie die has_unpaid_bill
haben Spalte in der Tabelle an erster Stelle? Es hängt von SYSDATE
ab . Die Anforderung riecht nach eine virtuelle Spalte, aber - Sie können SYSDATE
nicht verwenden da es sich nicht um eine deterministische Funktion handelt. Wie wäre es also mit einer Ansicht stattdessen? Behalten Sie benötigte Daten in der Tabelle, aber fragen Sie die Ansicht ab:
Tabelle und mehrere Beispieldatensätze:
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.
Ansicht:
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>