Я бы хотел заставить функцию Oracle sysdate
возвращать разные значения для отдельных операторов, как это происходит в Postgres.Я покопался в документации, в сети и в самом SO, но не смог найти ответ на этот вопрос.
Документация кажется довольно плохой для этого: убедитесь сами
Я использую Oracle 11g с SQL Developer 18.3
Пожалуйста, читайте дальшеMVCE ниже.
После выполнения этого:
create table t(a timestamp);
insert into t values (sysdate);
insert into t values (sysdate);
insert into t values (sysdate);
select * from t;
Я получаю:
A
---------------------------
18/12/25 04:25:59,000000000
18/12/25 04:25:59,000000000
18/12/25 04:25:59,000000000
Я хотел бы получить (изменено вручную):
A
---------------------------
18/12/25 04:25:59,1234
18/12/25 04:25:59,7281
18/12/25 04:26:00,1928
Реальная проблема представлена в различных CALL
инструкциях для процедур, но приведенный выше пример, кажется, повторяет проблему для меня.
ОБНОВЛЕНИЕ
Одна вещь, которая мне показалась полезной, это поставить паузы между утверждениями, но это действительно не то, что я ищу:
set pause on;
create table t(a timestamp);
insert into t values (sysdate);
pause
insert into t values (sysdate);
pause
insert into t values (sysdate);