我在Postgres9.5中使用了PyGreSQL 4.1.1,并编写了一些存储函数。我使用函数内部不同级别的RAISE进行调试,这在psql中运行得很好,但我还没有找到在psql中访问这些消息的方法。
示例:
CREATE OR REPLACE FUNCTION my_function() RETURNS BOOLEAN AS $_$
BEGIN
RAISE NOTICE 'A notice from my function.';
RETURN TRUE;
END
$_$ LANGUAGE plpgsql;我的Python代码如下所示:
conn = pgdb.connect(database = 'mydb', user = 'myself')
cursor = conn.cursor()
cursor.execute("SELECT my_function()"):如何在运行A notice from my function.后访问通知( my_function() )
发布于 2017-11-09 18:39:04
由于@klin的评论,我发现了一个有点不干净的解决方案。pgdb.Connection对象将基础pg.Connection对象存储在名为_cnx的私有属性中。因此,您可以这样设置通知接收方:
def my_notice_receiver(notice):
logging.info("Notice: %s", notice)
conn._cnx.set_notice_receiver(my_notice_receiver)https://stackoverflow.com/questions/47203287
复制相似问题