2016-09-21 19 views
0

実行されたクエリとPostgreSQLのクエリの結果を出力しようとしています。私は標準のpostgresql JDBCドライバを使用して、単純なant sqlタスクを持っています。Ant SQLのタスク - PostgreSQLで実行されたクエリと結果を出力する

info: 
     [sql] Executing resource: script.sql 
     [sql] test 
     [sql] 1 
     [sql] 
     [sql] 0 rows affected 
     [sql] 1 of 1 SQL statements executed successfully 

が、私はこのような出力で選択クエリを印刷したいと思います:

<?xml version="1.0"?> 
    <project name="Ant SQL task" default="sql"> 

    <target name="sql"> 
     <echo>Ant SQL task</echo> 
     <sql 
    driver="org.postgresql.Driver" 
    url="jdbc:postgresql://hostname:port/database" 
    userid="user" 
    password="password" 
    src="script.sql" 
    print="yes" 
    > 

    </sql> 
    </target>  
</project> 

script.sql containtsはちょうど

select 1 as test; 

私はこの出力を取得しています

info: 
     [sql] Executing resource: script.sql 
     [sql] select 1 as test; 
     [sql] test 
     [sql] 1 
     [sql] 
     [sql] 0 rows affected 
     [sql] 1 of 1 SQL statements executed successfully 

方法がありますか出力内の選択クエリ?

答えて

0

1.)jdbcにはloglevelをDEBUG(2)に設定します。今のところあなたのログファイルにはあま​​り情報がありませんが、あまりにも多くの情報はありません。

2)あなたのクエリを少し追加します。これはあなたすべて実行中のクエリだけではなく、現在のものを与えること

SELECT 1 as foo, (SELECT query FROM pg_stat_activity); 
foo |       query       
-----+-------------------------------------------------------- 
    1 | SELECT 1 as foo, (SELECT query FROM pg_stat_activity); 
(1 row) 

注意を。 pg_stat_activityの多くの列の1つで絞り込むことができますが、これがビジーなシステムでない限り、おそらく不要です。設定する場合は、接続パラメータにApplicationNameを設定します。代わりにpsql -e -f script.sqlを実行するために、アリSQLモジュールを溝)

SELECT 'SELECT 1;'; 
SELECT 1; 
SELECT 'SELECT 2;'; 
SELECT 2; 

4とexecを使用します:

3)手動で次のクエリを繰り返しているscript.sqlに行を追加します。

SELECT 1; 
?column? 
---------- 
     1 
(1 row) 

することができます行数を-P footer=OFFで省略してください。

関連する問題