Обсуждение: Writing output to a file

Поиск
Список
Период
Сортировка

Writing output to a file

От
Chris Gordon
Дата:
I am coming from Oracle & mySQL.  In Oracle I can use

spool foo.txt

<SQL>

spool off

After this the file foo.txt shows everything the screen showed.  If I had echo on it will show the command and results.  If I turn on timing it shows there too.

With mySQL similarly I can use tee foo.txt and notee;

I have used \o foo.txt and it seems to write significantly less than what I see on the screen.  Has anyone had experience with this?

--
The Gordons
TheGordonEmail@gmail.com
chrisgordon@truman.edu

Re: Writing output to a file

От
Richard Huxton
Дата:
Chris Gordon wrote:
> I have used \o foo.txt and it seems to write significantly less than what I
> see on the screen.  Has anyone had experience with this?

That's by design - it just shows results by default. I think you want to
capture STDOUT/ERR rather like this:

$ psql --echo-all -Urichardh richardh < test.sql > res.sql 2>&1

$ cat test.sql
\qecho hello world
\timing
SELECT * FROM nametest;
\d nametest

$ cat res.sql
\qecho hello world
hello world
\timing
Timing is on.
SELECT * FROM nametest;
  first | last | extra
-------+------+-------
(0 rows)

Time: 5.526 ms
\d nametest
           Table "public.nametest"
  Column |         Type          | Modifiers
--------+-----------------------+-----------
  first  | character varying(32) |
  last   | character varying(32) |
  extra  | character varying(32) |


That any help?

--
   Richard Huxton
   Archonet Ltd