J'essaye d'écrire une fonction sql dans Postgresql qui va analyser un chemin de fichier. Je veux juste retourner le nom du fichier.Ejection de barre oblique inverse dans Postgresql
Je n'arrive pas à obtenir une chaîne de texte précise dans la fonction.
Voici la fonction:
Function: job_page("inputText" text)
DECLARE
$5 text;
BEGIN
$5 = quote_literal("inputText");
return $5;
END
Quand je lance ceci:
select job_page('\\CAD_SVR\CADJOBS\7512-CEDARHURST ELEMENTARY SCHOOL\7512-20.DWG')
Je reçois ce résultat:
"E'\\CAD_SVRCADJOBSé2-CEDARHURST ELEMENTARY SCHOOLé2-20.DWG'"
Postgresql interprète la barre oblique suivie par certains caractères comme Caractère spécial.
Comment s'échapper?
I * am * utilise quote_literal dans une fonction. Voir mon message original. J'ai essayé comme vous l'avez suggéré mais je n'obtiens toujours pas le bon résultat. – mohnston
Vous ne comprenez pas. Vous appelez cette fonction job_page() à tort. Vous devez citer son argument avant d'appeler job_page - il n'y a aucun moyen pour une fonction de citer correctement son propre argument. Collez un code, où vous appelez cette fonction et nous serons en mesure d'aider. – Tometzky