Discussion:
[SQL] Setting the Field Separator in PSQL
Osborn, Marty
2015-04-07 20:39:07 UTC
Permalink
I need to change the field separator to a tab in an input SQL file.

I've tried every combination of tab, '\t', "\t", --field-separator='\t', etc, etc.

Should it be in the command line or in the SQL file?
Any help?

Marty
________________________________
[cid:***@01D07148.FA5AC0E0], The Security Division of EMC
Information Security Services Group



[CISSP]

Marty Osborn, CISSP, RSA CSP
Principal Practice Consultant 214-676-9571
***@rsasecurity.com<mailto:***@rsasecurity.com>

________________________________
This message contains information that may be confidential and privileged. Unless you are the addressee (or authorized to receive mail for the addressee), you should not use, copy, or disclose to anyone this message or any information contained in this message. If you have received this message in error, please so advise the sender by reply e-mail and delete this message. Thank you for your cooperation.
________________________________
Adrian Klaver
2015-04-07 21:36:22 UTC
Permalink
Post by Osborn, Marty
I need to change the field separator to a tab in an input SQL file.
More information is needed.

What is in the SQL file?

What do you want it to do when you load it?
Post by Osborn, Marty
I’ve tried every combination of tab, ‘\t’, “\t”, --field-separator=’\t’,
etc, etc.
Should it be in the command line or in the SQL file?
Any help?
Marty
--
Adrian Klaver
***@aklaver.com
--
Sent via pgsql-sql mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql
David G. Johnston
2015-04-07 21:48:40 UTC
Permalink
Post by Osborn, Marty
I need to change the field separator to a tab in an input SQL file.
I’ve tried every combination of tab, ‘\t’, “\t”, --field-separator=’\t’,
etc, etc.
Should it be in the command line or in the SQL file?
Any help?
​More context would helpful but keep in mind that within SQL the expression:

'\t' is a literal back-slash and a literal "t"

E'\t' is escaped to mean <tab>​

Dealing with the shell complicates the issue so if you can avoid it I
suggest that do avoid it.

David J.
David G. Johnston
2015-04-07 21:52:23 UTC
Permalink
On Tue, Apr 7, 2015 at 2:48 PM, David G. Johnston <
Post by David G. Johnston
Post by Osborn, Marty
I need to change the field separator to a tab in an input SQL file.
I’ve tried every combination of tab, ‘\t’, “\t”, --field-separator=’\t’,
etc, etc.
Should it be in the command line or in the SQL file?
Any help?
'\t' is a literal back-slash and a literal "t"
E'\t' is escaped to mean <tab>​
Dealing with the shell complicates the issue so if you can avoid it I
suggest that do avoid it.
​I should probably have tried my own advice first, and I still haven't, but
the documentation states:

"​"""
fieldsep
Specifies the field separator to be used in unaligned output format. That
way one can create, for example, tab- or comma-separated output, which
other programs might prefer. To set a tab as field separator, type \pset
fieldsep '\t'. The default field separator is '|' (a vertical bar).
​"""​

​So I'm not sure if this report is user-error or documentation error. A
self-contained test case would help...

David J.​
David G. Johnston
2015-04-07 21:54:56 UTC
Permalink
On Tue, Apr 7, 2015 at 2:52 PM, David G. Johnston <
Post by David G. Johnston
On Tue, Apr 7, 2015 at 2:48 PM, David G. Johnston <
Post by David G. Johnston
Post by Osborn, Marty
I need to change the field separator to a tab in an input SQL file.
I’ve tried every combination of tab, ‘\t’, “\t”, --field-separator=’\t’,
etc, etc.
Should it be in the command line or in the SQL file?
Any help?
'\t' is a literal back-slash and a literal "t"
E'\t' is escaped to mean <tab>​
Dealing with the shell complicates the issue so if you can avoid it I
suggest that do avoid it.
​I should probably have tried my own advice first, and I still haven't,
"​"""
fieldsep
Specifies the field separator to be used in unaligned output format. That
way one can create, for example, tab- or comma-separated output, which
other programs might prefer. To set a tab as field separator, type \pset
fieldsep '\t'. The default field separator is '|' (a vertical bar).
​"""​
​So I'm not sure if this report is user-error or documentation error. A
self-contained test case would help...
David J.​
​sorry...

Two more random thoughts:

Do you maybe need to altering COPY behavior:

​http://www.postgresql.org/docs/9.4/interactive/sql-copy.html

and, if you are indeed focused on "psql OUTPUT" are you making sure you are
specifying the "unaligned" output format?

David J.
Adrian Klaver
2015-04-07 21:57:02 UTC
Permalink
Post by David G. Johnston
On Tue, Apr 7, 2015 at 2:48 PM, David G. Johnston
I need to change the field separator to a tab in an input SQL
file.____
__ __
I’ve tried every combination of tab, ‘\t’, “\t”,
--field-separator=’\t’, etc, etc.____
__ __
Should it be in the command line or in the SQL file?____
____
Any help?____
​More context would helpful but keep in mind that within SQL the
'\t' is a literal back-slash and a literal "t"
E'\t' is escaped to mean <tab>​
Dealing with the shell complicates the issue so if you can avoid it
I suggest that do avoid it.
​I should probably have tried my own advice first, and I still haven't,
"​"""
fieldsep
Specifies the field separator to be used in unaligned output format.
That way one can create, for example, tab- or comma-separated output,
which other programs might prefer. To set a tab as field separator, type
\pset fieldsep '\t'. The default field separator is '|' (a vertical bar).
​"""​
​So I'm not sure if this report is user-error or documentation error. A
self-contained test case would help...
Well the OP was talking about an input file, so I my suspicion they are
looking for something like \copy.
Post by David G. Johnston
David J.​
--
Adrian Klaver
***@aklaver.com
--
Sent via pgsql-sql mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql
Loading...