PostgreSQL에서 시스템 경로를 저장할 적절한 위치를 찾으려고합니다.스크립트에서 참조 할 수 있도록 경로를 저장하는 PostgreSQL
내가하려는 것은 COPY 명령을 사용하여 테이블에 값을로드하는 것입니다. 그러나 동일한 파일 경로를 정기적으로 참조 할 것이므로 해당 경로를 한 곳에서 저장하려고합니다. 적절한 경로를 반환하는 함수를 만들려고했지만 COPY 명령에서 함수를 호출 할 때 구문 오류가 발생합니다. 이것이 올바른 방향인지 확신 할 수 없지만 어쨌든 코드를 게시 할 것입니다.
COPY 명령 :
COPY employee_scheduler.countries (code, name)
FROM get_csv_path('countries.csv')
WITH CSV;
기능 정의 : 사람이이 작업을 수행하는 방법에 대한 다른 아이디어가있는 경우
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;
내가 제안을 개방적이야.
UPDATE :
내가 수신하고 오류는 다음과 같습니다 employee_scheduler.get_csv_path FROM ('countries.csv')
:
ERROR : 또는 근처 "employee_scheduler" LINE (12)에서 구문 오류
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;
나는 이것이 달성하기 위해 노력하고있어 방법을 생각하기 시작 해요 : 나는 운이 다음과 같은 문장을 시도했습니다 불가능합니다. 다른 사람이 이것을 달성하는 방법에 대한 아이디어가 있습니까? 복사 문을 사용하려면 모든 곳에서 하드 코드를 코딩해야 할 수도 있습니다 ...
감사합니다.
예, 이전에 employee_scheduler.get_csv_path를 추가하려고했지만 여전히 작동하지 않습니다. select 문을 사용하여 올바른 출력을 생성하지만 COPY 문에서 작동하지 않습니다. 내가받은 오류뿐만 아니라 내가 시도한 다른 것들로 내 질문을 업데이트했다. –