Обсуждение: Writing output to a file
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
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
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