尝试在pgsql上写一个关于存储过程和游标 的demo,但是总是报错(如图2),想问下哪里有错误吗?
1、我在pg12版本的数据库上测试是没有问题的
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