Обсуждение: Having issues inserting a string with a ' into a varchar column

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

Having issues inserting a string with a ' into a varchar column

От
Sbob
Дата:

Hi all;


I have a table that includes a varchar column.

I am inserting some data and one of the strings = "Poker 5 card Hold'Em"

as a straight string it errors out.


I tried this :  quote_ident ( 'Poker 5 card Hold'Em')

but it still error's out


I also tried :  quote_literal('Poker 5 card Hold\'Em')

but it also errors out:


psql:test.sql:1042: ERROR:  syntax error at or near "Em"
LINE 1: ...ed) VALUES ( quote_literal('Poker 5 card Hold\\'Em'), 2, 1...


Thanks in advance



Re: Having issues inserting a string with a ' into a varchar column

От
Sbob
Дата:

correction, the quote_ident below should be quote_literal

I did not try quote_ident




On 4/15/22 12:01, Sbob wrote:

Hi all;


I have a table that includes a varchar column.

I am inserting some data and one of the strings = "Poker 5 card Hold'Em"

as a straight string it errors out.


I tried this :  quote_ident ( 'Poker 5 card Hold'Em')

but it still error's out


I also tried :  quote_literal('Poker 5 card Hold\'Em')

but it also errors out:


psql:test.sql:1042: ERROR:  syntax error at or near "Em"
LINE 1: ...ed) VALUES ( quote_literal('Poker 5 card Hold\\'Em'), 2, 1...


Thanks in advance



Re: Having issues inserting a string with a ' into a varchar column

От
"David G. Johnston"
Дата:
On Friday, April 15, 2022, Sbob <sbob@quadratum-braccas.com> wrote:

I tried this :  quote_ident ( 'Poker 5 card Hold'Em')

but it still error's out


I also tried :  quote_literal('Poker 5 card Hold\'Em')

but it also errors out:


You have the right idea you need to escape it.  But guessing isn’t a good method to figure out how.


You can’t use quote_* on a literal if you do not express the literal correctly.

David J.
 

Re: Having issues inserting a string with a ' into a varchar column

От
Gavan Schneider
Дата:

On 16 Apr 2022, at 4:01, Sbob wrote:

Hi all;

I have a table that includes a varchar column.

I am inserting some data and one of the strings = "Poker 5 card Hold'Em"

as a straight string it errors out.

I tried this :  quote_ident ( 'Poker 5 card Hold'Em')

but it still error's out

I also tried : quote_literal('Poker 5 card Hold\'Em')

but it also errors out:

psql:test.sql:1042: ERROR:  syntax error at or near "Em"
LINE 1: ...ed) VALUES ( quote_literal('Poker 5 card Hold\\'Em'), 2, 1...

Unbalanced single quote, try dollar quotes as a general get out of jail approach…

pendari=# SELECT $x$Poker 5 card Hold'Em$x$::TEXT;        text
---------------------- Poker 5 card Hold'Em
(1 row)

https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS

Regards

Gavan Schneider
——
Gavan Schneider, Sodwalls, NSW, Australia
Explanations exist; they have existed for all time; there is always a well-known solution to every human problem — neat, plausible, and wrong.
— H. L. Mencken, 1920