PostgreSQL 用查询的结果 循环调用函数

SELECT
        relname
FROM
        pg_class 
WHERE
        relkind = 'r' 
        AND relnamespace = ( SELECT oid FROM pg_namespace WHERE nspname = 'a' ) 
ORDER BY
        relname;

通过以上代码查出a模式下所有表的表名 

怎么将这个结果作为参数循环调用函数select table_file_access_info('b', 'c')

a查询的结果返回单列多行 qqq,www,eee,rrr

如何循环调用函数

 select table_file_access_info('b', 'qqq');select table_file_access_info('b', 'www');select table_file_access_info('b', 'eee');select table_file_access_info('b', 'rrr')

 

您可以使用一个循环来逐一遍历查询结果,并且将每一行的结果传递给函数 table_file_access_info。以下是一个基本的示例:

DO $$
DECLARE
    r record;
BEGIN
    FOR r IN
        SELECT relname
        FROM pg_class 
        WHERE relkind = 'r' 
            AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'a' ) 
        ORDER BY relname
    LOOP
        SELECT table_file_access_info('b', r.relname);
    END LOOP;
END $$;

在上述代码中,我们使用了 FOR r IN 来循环遍历查询结果列表,并使用 LOOP 和普通的 SELECT 语句调用 table_file_access_info 函数。

注意,这只是一个基本的示例,具体实现可能需要进行一些修改以适应您的具体情况。另外,如果您需要在代码中添加其他逻辑,请确保您了解所有涉及到的操作的含义和影响。