Escaping special characters - \r when doing COPY CSV

From: Edwin UY <edwin(dot)uy(at)gmail(dot)com>
To: Pgsql-admin <pgsql-admin(at)lists(dot)postgresql(dot)org>
Subject: Escaping special characters - \r when doing COPY CSV
Date: 2025-09-04 06:01:45
Message-ID: CA+wokJ9_q+81PFDH2NriJUZg8BjtBk=Z+ov4LRybmKAq70NBnA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi,

I don't have access to run copy as this is a RDS database so I can only use
\copy.
I need to send the output to csv.
One of the fields has a special character = \r. I can see it visually.

Running the \copy below gives me extra row/s because of the \r
\copy ( select * from blah where blah_ref = '666' order by date_created
desc limit 5; ) to 'abc.csv' WITH CSV DELIMITER ',' HEADER

I have tried this
\copy ( select * from blah where blah_ref = '666' order by date_created
desc limit 5; ) to 'abc.csv' WITH (FORMAT CSV, HEADER, ESCAPE '\r');

But it gives ERROR: COPY escape must be a single one-byte character.

Besides using a view for the SQL, as suggested when I do a web search, any
chance someone here knows how to do it without using a view?

Please advise. Thanks in advance.

Regards,
Ed

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Laurenz Albe 2025-09-04 07:29:35 Re: Escaping special characters - \r when doing COPY CSV
Previous Message Mauricio Fernandez 2025-09-03 17:51:19 Re: Adding timestamp column