2016-07-21 17 views
0

セットアップのpgAgentの手順はどうですか?ResultまたはOutputは、自分の関数で処理された行の数を表示しますか?pgAgentの結果を表示

enter image description here

私の機能は、すでに影響を受けた行数を返しますが、それはResultに値ショーをイマイチ。 source code of pgagentによると

BEGIN 
    WHILE int_pending > 0 LOOP  
     ..... 
     UPDATE table SET .... 
     GET DIAGNOSTICS int_row_count = ROW_COUNT; 
     int_total = int_total + int_row_count;  
    END LOOP; 

    RETURN int_total;   
END; 

答えて

0

:ジョブステップの実行の

output = stepConn->GetLastError(); 

... 

rc = threadConn->ExecuteVoid(
     wxT("UPDATE pgagent.pga_jobsteplog ") 
     wxT(" SET jslduration = now() - jslstart, ") 
     wxT("  jslresult = ") + NumToStr(rc) + wxT(", jslstatus = '") + stepstatus + wxT("', ") 
     wxT("  jsloutput = ") + threadConn->qtDbString(output) + wxT(" ") 
     wxT(" WHERE jslid=") + jslid); 

pgagent店舗最後のエラー。

ので、目的の動作を実装するには2つの方法があります:plpgsqlが機能内でこのカスタムバージョン

  • 使用RAISE EXCEPTIONを、あなたの機能を実装する再コンパイル、インストールして使用する

    • パッチのソースコードを、このようなものは、 :

      CREATE OR REPLACE FUNCTION test_output() RETURNS VOID AS $$ 
          DECLARE 
          rows int := 25; 
          BEGIN 
          RAISE EXCEPTION 'Updated rows: %', rows; 
          END; 
      $$ LANGUAGE PLPGSQL;