Penso che tu abbia frainteso a cosa serve l'unione.
Mi aspetto che il tuo tavolo sia qualcosa del tipo:
CREATE TABLE TABLE_FOR_TESTS (
d DATE,
t NUMBER(8),
CONSTRAINT TABLE_FOR_TESTS_PK PRIMARY KEY (d)
)
e quindi l'istruzione di unione potrebbe essere:
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)
dove il join si trova sulla chiave primaria della tabella e si aggiorna o si inserisce a seconda che il record per quel valore PK esista.
Questo avrebbe un massimo di un record al giorno e t conterrebbe il numero di esecuzioni di questa istruzione al giorno (supponendo che nessun altro DML su TABLE_FOR_TESTS).
Nota:sysdate di per sé include un componente temporale. trunc(sysdate) lo rimuove e imposta l'ora su 00:00:00.