2016-10-19 9 views
1

SQLファイルを実行しているときにpostgres出力コンソールに印刷するにはどうすればいいですか?

は、私は、このコマンドを使用して、私のSQLファイルを実行します。次の出力を生成SQLファイルを実行しているときにpostgresの出力コンソールに物を印刷する方法は?

DO $$ BEGIN 
     RAISE INFO ' '; 
     RAISE INFO ' '; 
     RAISE INFO '1...'; 
    END $$; 

    SELECT paciente.nome 
    FROM paciente 
    WHERE paciente.idade = 
     (SELECT MIN(paciente.idade) 
      FROM paciente); 

    DO $$ BEGIN 
     RAISE INFO '  nome  '; 
     RAISE INFO '-----------------'; 
     RAISE INFO 'Maria Aparecida'; 
     RAISE INFO ' '; 
     RAISE INFO ' '; 
     RAISE INFO ' '; 
     RAISE INFO '2...'; 
    END $$; 

    SELECT consulta.data, consulta.hora 
    FROM consulta 
    WHERE consulta.valor = 
     (SELECT MAX(consulta.valor) 
      FROM consulta); 

    DO $$ BEGIN 
     RAISE INFO '  Data  hora  valor'; 
     RAISE INFO '"2002-03-21"; "09:00:00";122.0000'; 
     RAISE INFO ' '; 
     RAISE INFO ' '; 
     RAISE INFO ' '; 
     RAISE INFO '3...'; 
    END $$; 

::私は多くのことを検索し、私はこの戦略を見つけ

PGPASSWORD=admin; 
    psql --host "localhost" --port 5432 --username "postgres" -d "aula21" < $1 

INFO:  
    INFO:  
    INFO: 1... 
    DO 
      nome  
    ----------------- 
    Maria Aparecida 
    (1 row) 

    INFO:  nome  
    INFO: ----------------- 
    INFO: Maria Aparecida 
    INFO:  
    INFO:  
    INFO:  
    INFO:  
    INFO:  
    INFO:  
    INFO: 2... 
    DO 
     data | hora 
    ------------+---------- 
    2002-03-21 | 09:00:00 
    (1 row) 

    INFO:  Data  hora  valor 
    INFO: "2002-03-21"; "09:00:00";122.0000 
    INFO:  
    INFO:  
    INFO:  
    INFO:  
    INFO:  
    INFO:  
    INFO: 3... 
    DO 

しかし、このように書く方がいいですか?

print ' '; 
    print ' '; 
    print '1...'; 

    SELECT paciente.nome 
    FROM paciente 
    WHERE paciente.idade = 
     (SELECT MIN(paciente.idade) 
      FROM paciente); 

    print '  nome  '; 
    print '-----------------'; 
    print 'Maria Aparecida'; 
    print ' '; 
    print ' '; 
    print ' '; 
    print ' '; 
    print ' '; 
    print ' '; 
    print '2...'; 

    SELECT consulta.data, consulta.hora 
    FROM consulta 
    WHERE consulta.valor = 
     (SELECT MAX(consulta.valor) 
      FROM consulta); 

    print '  Data  hora  valor'; 
    print '"2002-03-21"; "09:00:00";122.0000'; 
    print ' '; 
    print ' '; 
    print ' '; 
    print ' '; 
    print ' '; 
    print ' '; 
    print '3...'; 

ポイントも使用して達成することができる:

\echo 'INFO:  ' 
\echo 'INFO: 1...' 
\echo 'INFO:  ' 

SELECT paciente.nome 
FROM paciente 
WHERE paciente.idade = 
    (SELECT MIN(paciente.idade) 
     FROM paciente) 

\echo 'INFO:  nome  ' 
\echo 'INFO: -----------------' 
\echo 'INFO: Maria Aparecida' 
\echo 'INFO:  ' 
\echo 'INFO:  ' 
\echo 'INFO:  ' 
\echo 'INFO:  ' 
\echo 'INFO:  ' 
\echo 'INFO: 2...' 
\echo 'INFO:  ' 

SELECT consulta.data, consulta.hora 
FROM consulta 
WHERE consulta.valor = 
    (SELECT MAX(consulta.valor) 
     FROM consulta) 

\echo 'INFO:  Data  hora  valor' 
\echo 'INFO: "2002-03-21" "09:00:00"122.0000' 
\echo 'INFO:  ' 
\echo 'INFO:  ' 
\echo 'INFO:  ' 
\echo 'INFO:  ' 
\echo 'INFO:  ' 
\echo 'INFO: 3...' 
\echo 'INFO:  ' 
+0

SQLを実行しているときにユーザーフレンドリーな出力が本当によく現れないのは、私が恐れることです。それを書いて実行する人は、通常、それについて知っています:)私はあなたがそれを必要とする理由を尋ねることができますか – dahrens

答えて

2

私はthe documentationを参照してください、あなたは\qecho psqlのコマンドを探していると思います。

関連する問題