Я пытаюсь написать общую хранимую функцию, которая запрашивает Информационную_SCHEMA и использует эту информацию для доступа к фактическому значению поля таблицы, описанной в INFORMATION_SCHEMA. Вот фрагмент кода, который показывает, что я пытаюсь сделать:Как я могу использовать результат PostgreSQL INFORMATION_SCHEMA в PL/pgSQL?
select_sql := 'SELECT * FROM "' || tableName || '" WHERE "' || tablePKey || '" = ''' || key_id || ''';';
FOR existing_rec IN EXECUTE select_sql LOOP
describe_sql := 'SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = ''' || tableName || ''';';
FOR describe_rec IN EXECUTE describe_sql LOOP
RAISE NOTICE 'table: % field: % value: %',
tableName,
describe_rec.column_name,
This is my issue -> existing_rec."describe_rec.column_name"; <- This is my issue.
END LOOP;
END LOOP;
Как я могу получить фактическое значение полей в existing_rec от внешнего контура, используя имена полей, извлекаемые из INFORMATION_SCHEMA?
Как в стороне, [ 'format' функции] (https://www.postgresql.org/ docs/current/static/functions-string.html # FUNCTIONS-STRING-FORMAT) может быть лучше, чем конкатенация строк для построения 'select_sql'. –