2016-09-21 135 views
0

我試圖打印執行的查詢以及PostgreSQL上的查詢結果。我有簡單的ant sql任務,使用標準的postgresql JDBC驅動程序。Ant sql任務 - 使用PostgreSQL打印執行的查詢和結果

<?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] test 
     [sql] 1 
     [sql] 
     [sql] 0 rows affected 
     [sql] 1 of 1 SQL statements executed successfully 

我想打印的選擇查詢在這樣的輸出:

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 

是否有辦法包括e輸出中的選擇查詢?

回答

0

1.)將loglevel設置爲針對jdbc的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中的許多列之一縮小範圍,但這可能是不必要的,除非這是一個繁忙的系統。如果您決定這樣做,請在您的連接參數中設置ApplicationName

3)添加行script.sql是手動重複一個查詢:

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

4)溝螞蟻SQL模塊,並使用exec運行psql -e -f script.sql代替:

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

你可以請用-P footer=OFF省略行數。

相關問題