У меня есть таблица, которая содержит столбец типа TIMESTAMP (6), если я попытаюсь запросить эту таблицу, все будет в порядке, пока я не параметризирую ее.
Это работает:
SELECT
COUNT(*)
FROM
t_data
WHERE
DATA_TS >= TO_TIMESTAMP('13.09.18 11:30:00')
AND DATA_TS <= TO_TIMESTAMP('13.09.18 11:33:00');
Однако это не удается с ORA-01858 «не числовой символ был найден там, где ожидалось число», предоставляя значения, как указано выше.Я также пытался обернуть параметры в TO_TIMESTAMP (), используя формат Mask из NLS_PARAMETERS.
SELECT
COUNT(*)
FROM
t_data
WHERE
DATA_TS >= TO_TIMESTAMP(:AStart,'DD.MM.RR HH24:MI:SSXFF')
AND DATA_TS <= TO_TIMESTAMP(:AEnd,'DD.MM.RR HH24:MI:SSXFF');
Кто-нибудь знает, что вызывает эту проблему?
Тестовый пример: создание таблицы
create table t_data (
data varchar2(80),
data_ts timestamp
);
Вставка DATA
Insert into t_data (data,data_ts) VALUES ('TEST', systimestamp);
Использование & AStart вместо: AStart работает хорошо, если это кому-то помогает