Есть запрос SQL. Параметры выборки будут всегда одинаковы, но условия выборки могут быть разными.
Требуется эти условия сохранять в БД и затем подставлять, по необходимости, в запрос. Как сделать это, допустим, через PHP я себе могу представить (просто выбираем из таблицы нужное условие и присоединяем к строчке запроса).
Можно ли это реализовать на SQL? Т.е. вернуть данные от стандартного запроса с присоединенными условиями, выбранными из таблицы БД?
Ответ
Да, можно.
Составить SQL запрос можно так же как и в PHP, надо выбрать из таблицы нужное условие и присоединить к строчке запроса. Любой SQL клиент в этом контексте мало чем отличается от PHP клиента, разве что синтаксисом конкантинации строчных значений.
В PL/SQL воспользуйтесь динамическим запросом:
declare
sqlStmt varchar2 (32000);
result <тип ресультата>;
whereCond varchar2 (4000);
begin
sqlStmt := 'select ... from ... where ';
execute immediate sqlStmt||whereCond
into result;
end;
Но всё вышеизложенное абсолютно не нужно для решения задачи как в вопросе. Надо просто составить только один SQL запрос учитывая условия ранее сохранённые в БД.
Комментариев нет:
Отправить комментарий