口力叻口力 2021-02-04 17:01 采纳率: 0%
浏览 357

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')

 

  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-14 23:24
    关注

    您可以使用一个循环来逐一遍历查询结果,并且将每一行的结果传递给函数 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 函数。

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

    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制