PGSQL 存储过程及游标的使用问题

img

img

尝试在pgsql上写一个关于存储过程和游标 的demo,但是总是报错(如图2),想问下哪里有错误吗?

1、我在pg12版本的数据库上测试是没有问题的

img

2、不知道是不是你的数据库版本问题,报错信息上显示varchar类型错误,你使用integer类型测试下,或者直接运行我的脚本试下看呢

    DO $$
    DECLARE
        v_cnt      integer;
        cur_tmp    CURSOR( v_k varchar ) FOR ( SELECT count(1) cnt FROM pg_tables WHERE tablename ~ v_k );
    BEGIN
        FOR rec IN cur_tmp( 'pg' ) LOOP
            SELECT rec.cnt INTO v_cnt;
        END LOOP;
        RAISE NOTICE '%', v_cnt;
    END;
    $$;

另:函数的参数名与游标的参数名不一致是正常的,一致了才会导致混乱

方法参数写错了,多了一个字符g

img