Vous n'êtes pas identifié(e).

#1 22/10/2012 11:57:53

laura
Membre

requête avec apostrophe dans variable

Bonjour,

J'ai créé une fonction qui automatise l'export au format csv du résultat d'une requête dont un champ est une variable (le nom d'une commune).
Le problème est que pour certaines communes j'ai une apostrophe dans le nom et de ce fait ma requête select ne fonctionne pas dans tous les cas.
Que dois je faire pour résoudre ce problème?

voici la structure de ma requête select :
select * from matable where commune = ''' || varcommune|| '''

où varcommune est la variable contenant le nom de la commune

Merci beaucoup pour votre aide.

Hors ligne

#2 22/10/2012 16:41:54

dverite
Membre

Re : requête avec apostrophe dans variable

Ca dépend du langage de programmation où varcommune est défini, chaque langage de programmation ayant ses propres méthodes pour injecter une variable dans une requête.

Si le langage est plpgsql, on utilisera plutôt USING ou en second choix la fonction quote_literal.
Si c'était du C on utiliserait la fonction PQescapeStringConn, si PHP pg_escape_string etc...

Hors ligne

#3 23/10/2012 08:45:14

laura
Membre

Re : requête avec apostrophe dans variable

Bonjour,

Merci pour votre réponse. Désolée de ne pas avoir précisé le langage, en fait comme j'ai posté ce message dans la section PL/pgSQL je pensais que ça suffisait. J'ai essayé d'utiliser le using mais j'obtiens une erreur de syntaxe. Par contre en utilisant le quote_literal, cela fonctionne parfaitement! (Pour info, je suis en version 8.4 de postgreSQL)

Un grand merci pour votre aide!

Dernière modification par laura (23/10/2012 08:45:30)

Hors ligne

Pied de page des forums