Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 14/11/2012 19:38:01
- butin-matou
- Membre
Utiliser un backslash dans une fonction PL/PGSQL
Bonjour,
Comme d'autres avant moi, j'essaie d'ajouter une date au nom de fichier en sortie d'une commande COPY TO ...
J'ai compris qu'il faut passer par une fonction PL/PGSQL...
Ça marche, mais je voudrai que mon fichier soit exporté avec les options
with csv header
NULL AS '' et
DELIMITER AS E'\t' ' ;
Et là, tout marche bien aussi sauf que je n'arrive pas à maîtrise le syntaxe pour le DELIMITER AS E'\t' .
problème de backslash.
Quand je spécifie DELIMITER AS ''|'', tout fonctionne OK.
Voici une exemple qui fonctionne bien.
set standard_conforming_strings=on;
CREATE OR REPLACE FUNCTION copy_table_to_file(filename TEXT) RETURNS VOID AS
$$
BEGIN
EXECUTE 'COPY ma_table TO ''' || filename || ''' with csv header NULL AS '''' DELIMITER AS ''|'' ' ;
END;
$$
LANGUAGE 'plpgsql';
select copy_table_to_file('/home/csvstuff/ma_table_export_' || CURRENT_date::TEXT || '.txt');
A l'aide SVP pour le bon syntaxe.
Merci,
Butin
Hors ligne
#2 14/11/2012 20:23:58
- rjuju
- Administrateur
Re : Utiliser un backslash dans une fonction PL/PGSQL
Bonjour,
cela devrait fonctionner, si vous doublez les ':
EXECUTE 'COPY bench TO ''' || filename || ''' with csv header null as '''' DELIMITER AS E''\t''';
Julien.
https://rjuju.github.io/
Hors ligne
#3 15/11/2012 10:32:46
- butin-matou
- Membre
Re : Utiliser un backslash dans une fonction PL/PGSQL
Parfait !
Merci,
Butin
Hors ligne
Pages : 1