How to escape quotes in PostgreSql?

9

I have a function in postgresql function f_criaproduto(p_texto text) , I have to pass as f_criaproduto(' meu produto é 'televisao' da melhor qualidade') .

How can I escape the quotes in the text?

    
asked by anonymous 11.02.2014 / 12:36

2 answers

7

Just double the single quotes to generate an escape .

Example:

f_criaproduto(' meu produto é ''televisao'' da melhor qualidade')
    
11.02.2014 / 12:41
7

To escape quotes, you can duplicate them. Example:

f_criaproduto('meu produto é ''televisao'' da melhor qualidade')

To avoid the problem of having too many quotation marks to escape, you can use the dollar syntax:

$$meu produto é 'televisao' da melhor qualidade$$

Note that in this case, the string is set to a couple of dollars instead of quotes. If your string also has dollars, you can use a tag for it, setting it between the dollars. For example, to set the string minha 'televisao' custa uma boa $!

$string$minha 'televisao' custa uma boa $!$string$

It's still possible to use the \ character you need two things:

  • in the configuration file, you should enable standard_conforming_strings :

    standard_conforming_strings = off

  • Start your strings with E . Example:

    E'meu produto é \'televisao\' da melhor qualidade'

  • But this last option is old and should be avoided if possible

        
    11.02.2014 / 17:58