Myślę, że źle zrozumiałeś, do czego służy scalanie.
Spodziewam się, że Twój stół będzie wyglądał następująco:
CREATE TABLE TABLE_FOR_TESTS (
d DATE,
t NUMBER(8),
CONSTRAINT TABLE_FOR_TESTS_PK PRIMARY KEY (d)
)
a następnie instrukcja scalająca może wyglądać tak:
MERGE INTO TABLE_FOR_TESTS t
USING (SELECT trunc(sysdate) d FROM DUAL) s
ON (s.d = t.d)
WHEN MATCHED THEN
UPDATE SET t = t+1
WHEN NOT MATCHED THEN
INSERT (d, t) VALUES (trunc(sysdate), 1)
gdzie złączenie znajduje się w kluczu podstawowym tabeli i albo zaktualizuj lub wstaw w zależności od tego, czy rekord dla tej wartości PK istnieje.
Miałoby to maksymalnie jeden rekord dziennie, a t zawierałoby liczbę wykonań tej instrukcji dziennie (zakładając, że nie ma innego DML na TABLE_FOR_TESTY).
Uwaga:sysdate sam w sobie zawiera składnik czasu. trunc(sysdate) usuwa go i ustawia godzinę na 00:00:00.