7
我想通過psycopg2調用plpgsql函數並查看警告消息。 即,我有這樣的功能:通過psycopg2獲取警告消息
create or replace function test_warning() returns void as $$
begin
raise warning 'this is only a test';
end;
$$
language plpgsql;
,並在Python調用它這樣:
import psycopg2
conn = psycopg2.connect(conn_string)
cursor = conn.cursor()
cursor.callproc("test_warning")
# or so:
cursor.execute('SELECT test_warning()')
不幸的是在PLPGSQL定義的警告消息,任何地方都不會在Python輸出顯示。 有沒有辦法讓python輸出中顯示警告信息?
非常感謝,這個作品。但是如果我爲許多遊標使用相同的連接呢?我嘗試重置通知:'conn.notices = {}'但我得到了TypeError:readonly屬性的異常。 我可以在執行該功能時得到警告嗎?比方說,該函數會引發一個警告,然後是一個異常:我希望在引發異常之前看到警告。 – 2014-12-02 07:51:21
@Tomm更新中...... – 2014-12-02 11:33:51
@Tomm您可以使用'del conn.notices [:]'清除通知。在同步模式下執行時,您無法獲得通知。也許在異步模式是的,但我從來沒有嘗試過。 – piro 2014-12-05 12:34:15