Thread: Setting the Field Separator in PSQL

Setting the Field Separator in PSQL

From
"Osborn, Marty"
Date:

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


, The Security Division of EMC

Information Security Services Group

 

CISSP

Marty Osborn, CISSP, RSA CSP
Principal Practice Consultant 214-676-9571
marty.osborn@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.


 

Attachment

Re: Setting the Field Separator in PSQL

From
Adrian Klaver
Date:
On 04/07/2015 01:39 PM, Osborn, Marty wrote:
> 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?

>
> 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
adrian.klaver@aklaver.com



Re: Setting the Field Separator in PSQL

From
"David G. Johnston"
Date:
On Tue, Apr 7, 2015 at 1:39 PM, Osborn, Marty <marty.osborn@rsa.com> wrote:

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.

Re: Setting the Field Separator in PSQL

From
"David G. Johnston"
Date:
On Tue, Apr 7, 2015 at 2:48 PM, David G. Johnston <david.g.johnston@gmail.com> wrote:
On Tue, Apr 7, 2015 at 1:39 PM, Osborn, Marty <marty.osborn@rsa.com> wrote:

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.


​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.​

Re: Setting the Field Separator in PSQL

From
"David G. Johnston"
Date:
On Tue, Apr 7, 2015 at 2:52 PM, David G. Johnston <david.g.johnston@gmail.com> wrote:
On Tue, Apr 7, 2015 at 2:48 PM, David G. Johnston <david.g.johnston@gmail.com> wrote:
On Tue, Apr 7, 2015 at 1:39 PM, Osborn, Marty <marty.osborn@rsa.com> wrote:

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.


​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.​


​sorry...

Two more random thoughts:

Do you maybe need to altering COPY behavior:


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

David J.


Re: Setting the Field Separator in PSQL

From
Adrian Klaver
Date:
On 04/07/2015 02:52 PM, David G. Johnston wrote:
> On Tue, Apr 7, 2015 at 2:48 PM, David G. Johnston
> <david.g.johnston@gmail.com <mailto:david.g.johnston@gmail.com>>wrote:
>
>     On Tue, Apr 7, 2015 at 1:39 PM, Osborn, Marty <marty.osborn@rsa.com
>     <mailto:marty.osborn@rsa.com>>wrote:
>
>         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.
>
>
> ​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...

Well the OP was talking about an input file, so I my suspicion they are 
looking for something like \copy.

>
> David J.​
>


-- 
Adrian Klaver
adrian.klaver@aklaver.com