问:我想在PostgreSQL的测试if语句:如何测试PostgreSQL中的if语句?
IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN
PRINT 'Good'
ELSE
PRINT 'Bad'
END IF;
现在,这将引发在IF错误。
据我所知,这是因为我需要使用plpgsql才能够使用if,print和变量。
到目前为止,我可能还必须使用SELECT而不是打印。
如何在将此语句执行到plpgsql之前切换语言?
我想先测试一下,然后把它放入存储过程。 要使用的变量等
测试代码
编辑:
解决方式:
DO LANGUAGE plpgsql $$
BEGIN
IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN
RAISE NOTICE 'GOOD';
ELSE
RAISE NOTICE 'BAD';
END IF;
END;
$$;
回复:“我想先测试它,然后再将它放入存储过程中”:为什么?当你测试C#代码时,你拒绝创建一个'Main'方法吗? – ruakh 2012-02-05 18:39:39
@ruakh:不,但我拒绝为所有代码(包含所有参数)创建函数,然后每次需要测试一些代码时都必须从主方法调用此函数。 (之后也不得不删除这些功能)。基本上,我想要做的就是运行CREATE LANGUAGE plpgsql;如果它不是脚本开始处的注册语言。但是这似乎不太可能,如果没有if语句...... – 2012-02-05 18:44:24
Postgres中没有'PRINT'语句。而PL/pgSQL始终是从9.0开始创建的。所以你只需要测试它,如果你的目标是以前的版本 – 2012-02-05 19:07:28