Я хочу запросить указанную c информацию из всех таблиц в БД:
select *
from [pg_catalog.]pg_tables
where schemaname = '<Schema>';
Единственный способ, которым я могу это сделать (я принимаю любые предложения) без создания временной таблицы, будет разработать функцию, выполняющую al oop для таблиц схемы (L oop для Cursor с этим запросом), а затем для каждой таблицы в схеме я бы вызвал функцию, выполняющую dynamici c pg sql, чтобы получить желаемая информация из этой таблицы в схеме. Эта вторая функция требует Dynami c sql (я полагаю), так как имя таблицы, по которой я хочу выполнить запрос, может изменяться и поэтому должно передаваться в качестве аргумента функции.
Идея заключается в том, что эта «вызываемая» функция будет возвращать тип записи, а затем основная (или «вызывающая») функция должна возвращать тип таблицы, и именно здесь я теряюсь.
Что я надеваю Не знаю, как решить (и вообще не знаю, что можно решить) будет то, как построить функцию, возвращающую тип таблицы (или некоторую структуру данных, которая может быть указана при вызове функции из sql редактора) которая внутренне вызывает функцию, возвращающую запись (та же самая структура таблицы, возвращаемой функцией «вызова»). Во всех примерах, которые я вижу о функциях, возвращающих таблицы, возвращением является выполнение выбора, но я не нашел ни одного примера функции pg sql, возвращающей табличный тип, который внутренне создает структуру таблицы. И я не знаю, возможно ли это вообще.
- Конечно, тот же самый пример мог бы быть реализован в одной функции, но я все равно нашел бы ту же проблему с функцией, возвращающей табличный тип выполнение разных запросов, возвращающих тип записи. Заранее спасибо.