У меня есть база данных Oracle с тысячами проектов и миллионами подробных записей. Мне нужно запрашивать только около 6 проектов за раз. Я пытаюсь написать выражение M, чтобы передать 5 или 6 проектов, которые у меня есть в одной таблице (называемой «Проекты»), в мой запрос в виде предложения Where. Запрос выглядит хорошо, синтаксис SQL идеален, но ошибки. Я использую функцию ... fnGetProjects см. Ниже.
() =>
let
Source = "'" & Text.Combine(Projects, "', '") & "'"
in
Source
Это мой запрос ..
let
WhereClause = fnGetProjects(),
Source = Oracle.Database("gtmb", [HierarchicalNavigation=true, Query="SELECT p.Proj_ID, p.Proj_Description, p.Proj_Name FROM Project_YTD p where p.Proj_ID IN ("& WhereClause &")"])
in
Source
Вот мое сообщение об ошибке ...
Formula.Firewall: запрос «MyProjects (2)» (шаг «Источник») ссылается на другие запросы или шаги, поэтому он не может напрямую обращаться к источнику данных. Пожалуйста, восстановите эту комбинацию данных.
Я подозреваю, что это имеет какое-то отношение к приоритету ... но я думал, что читал, используя функцию, - это обходной путь. Я пробовал это, используя таблицу и параметр в различных формах, но безуспешно. Запросы всех проектов заставляют моих конечных пользователей слишком долго ждать.
Любая помощь приветствуется.
Спасибо,
Майк