Проблема возникла, когда я пытаюсь использовать значение даты (в ячейке в Excel) в запросе, соединяющемся с Oracle.
Мой намеренный запрос выглядит следующим образом (в расширенном редакторе):
Source = Oracle.Database("DB", [HierarchicalNavigation=true, Query="select *
#(lf)from table
#(lf)where SNAPSHOT_DT = TO_DATE('2020-02-20', 'YYYY-MM-DD')",
CreateNavigationProperties=false]),
Теперь этот код будет работать.
Теперь я хочу иметь возможность изменять свой SNAPSHOT_DT в ячейке, а не переходить к запросу и изменению, поэтому я создал ячейку с именем Snapshot_date и это как значение '2020-02-20' как строка
Я добавил строку в расширенном редакторе:
SDate= Excel.CurrentWorkbook(){[Name="Snapshot_date"]}[Content]{0}[Column1],
Теперь SDate имеет строковое значение как 2020-02-20
Но, когда я пытаюсь использовать SDate в запросе следующим образом:
Source = Oracle.Database("DB", [HierarchicalNavigation=true, Query="select *
#(lf)from table
#(lf)where SNAPSHOT_DT = TO_DATE('SDATE', 'YYYY-MM-DD')",
CreateNavigationProperties=false]),
Система выдаст ошибку:
DataSource .Error: Oracle: ORA-01841: (полный) год должен быть между -4713 и +9999, а не 0
Если я уберу знак '' вокруг SDate:
Source = Oracle.Database("DB", [HierarchicalNavigation=true, Query="select *
#(lf)from table
#(lf)where SNAPSHOT_DT = TO_DATE(SDATE, 'YYYY-MM-DD')",
CreateNavigationProperties=false]),
Ошибка будет отображаться как:
DataSource.Error: Oracle: ORA-00904: «SDATE»: неверный идентификатор.
Как я могу исправить проблему?
Спасибо!