2015-02-12 2 views
2

Как написать сообщения о результатах запроса, которые информируют пользователя о том, что запрос был успешным или нет, и количество затронутых записей, в файл журнала в PostgreSQL.Журнальные сообщения для сообщений postgres

Я попытался изменить log_statement на 'all' и log_min_duration_statement на 0, но все, что я получаю, это текст запроса.

Можно ли перенаправить эти сообщения в файл журнала в ОС Windows?

+0

Я не» Думаю, это возможно. –

+0

Должен быть способ :) Я надеюсь – Ucef

ответ

0

вы можете использовать GET DIAGNOSTICS для этого .. А если вы суперпользователь, вы можете сохранить результат в файл ...

create table tablename(version int); 
insert into tablename select 9; 
do 
$$ 
declare 
rc text; 
begin 
    update tablename set version=version where false; 
    GET DIAGNOSTICS rc = ROW_COUNT; 
    raise info '%',' changed: '||rc; 

    update tablename set version=version where true; 
    GET DIAGNOSTICS rc = ROW_COUNT; 
    raise info '%',' changed: '||rc; 

    raise info '%','If you are superuser you can save result to a file...'; 
    execute $e$copy(select '$e$||rc||$e$') to '/tmp/roes.log'$e$; 
    raise exception '%','raiseing error to rollback changes'; 
end; 
$$ 
; 

и результат выглядит:

INFO: changed: 0 
INFO: changed: 1 
INFO: If you are superuser you can save result to a file... 
ERROR: raiseing error to rollback changes 

********** Error ********** 

ERROR: raiseing error to rollback changes 
SQL state: P0001 
Смежные вопросы