J'essaie de trouver l'endroit approprié pour stocker un chemin système dans PostgreSQL.PostgreSQL stockant des chemins pour référence dans les scripts
Ce que j'essaie de faire est de charger des valeurs dans une table en utilisant la commande COPY. Cependant, puisque je ferai référence au même chemin de fichier régulièrement, je veux stocker ce chemin en un seul endroit. J'ai essayé de créer une fonction pour retourner le chemin approprié, mais j'obtiens une erreur de syntaxe lorsque j'appelle la fonction dans la commande COPY. Je ne suis pas sûr que ce soit la bonne façon de procéder, mais je posterai mon code de toute façon.
commande COPY:
COPY employee_scheduler.countries (code, name)
FROM get_csv_path('countries.csv')
WITH CSV;
Fonction Définition:
CREATE OR REPLACE FUNCTION
employee_scheduler.get_csv_path(IN file_name VARCHAR(50))
RETURNS VARCHAR(250) AS $$
DECLARE
path VARCHAR(200) := E'C:\\Brian\\Work\\employee_scheduler\\database\\csv\\';
file_path VARCHAR(250) := '';
BEGIN
file_path := path || file_name;
RETURN file_path;
END;
$$ LANGUAGE plpgsql;
Si quelqu'un a une autre idée sur la façon d'y arriver, je suis ouvert aux suggestions.
MISE À JOUR:
L'erreur que je reçois est:
ERREUR: erreur de syntaxe à ou près de "employee_scheduler" EN LIGNE 12: DE employee_scheduler.get_csv_path ('countries.csv')
J'ai essayé les déclarations suivantes sans chance:
COPY employee_scheduler.countries (code, name)
FROM employee_scheduler.get_csv_path('countries.csv')
WITH CSV;
COPY employee_scheduler.countries (code, name)
FROM (employee_scheduler.get_csv_path('countries.csv'))
WITH CSV;
COPY employee_scheduler.countries (code, name)
FROM (SELECT * FROM employee_scheduler.get_csv_path('countries.csv'))
WITH CSV;
Je commence à penser que la façon dont je suis en train d'y parvenir est pas possible. Est-ce que quelqu'un d'autre a des idées sur la façon d'y parvenir? Je pourrais juste devoir coder le chemin partout si je veux employer l'instruction de copie ...
Merci pour toute aide.
Ya, j'ai essayé d'ajouter employee_scheduler.get_csv_path avant et cela ne fonctionne toujours pas. Il produit la sortie correcte, avec l'instruction select, mais ne fonctionne pas dans l'instruction COPY. J'ai mis à jour ma question avec l'erreur que je reçois, ainsi que les différentes choses que j'ai essayées. –