sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #79027
Re: Specialtegn i PostgresDB
On Sun, 26 Dec 2004 15:19:23 +0000, Jørgen Heesche wrote:
>>>Du bruger backslash for at markere at det er tegnet for apostrof der
>>>ønskes. Du skal altså i din insert taste 'Jensen\'s Bøfhus'
>>
>>
>> Det virker så fordi Erling bruger postgres, '' er SQL-standardens måde
>> at gøre det på.
>
> Det er standardmetoden i linux(unix) til at markere, at man i en
> tekststreng ønsker at indsætte en apostrof (') eller citationstegn ("),
> og det har ikke noget med postgres at gøre.
Jo, det har da i høj grad noget med PostgreSQL at gøre. Jeg kan ikke se,
hvor shell-escaping kommer ind i billedet, andet end som en
forvirringsfaktor.
Og i øvrigt behøver man ikke nødvendigvis benytte \ til escpaing i
shell'en. Følgende to linjer giver fx. samme resultat i min shell:
echo "abc'def"
echo abc\'def
I den første linje er ingen escaping hverken nødvendig eller
hensigtsmæssig.
Tilbage til PostgreSQL:
Som Grove skriver, er svaret
INSERT ... VALUES ('Jensen''s Bøfhus')
Hvis man gør det fra en applikation, bør '-escaping foregå via den
PostgreSQL-specifikke funktion dertil. Se fx. følgende, der omhandler
C-applikationer:
http://www.postgresql.org/docs/7.4/static/libpq-exec.html#LIBPQ-EXEC-ESCAPE-STRING
--
Greetings from Troels Arvin, Copenhagen, Denmark
Follow ups
References