Czy wykonałeś oświadczenie jako superużytkownik? w psql i jako inny użytkownik przez JDBC?
Podręcznik mówi nam
:
możesz obejść to ograniczenie, otaczając instrukcję funkcją SECURITY DEFINER
należący do superużytkownika. Pamiętaj o zagrożeniach bezpieczeństwa . Możesz także ODWOŁAĆ
wszystkie prawa od publicznych i tylko DOTACJE
wybranym użytkownikom. Może wyglądać tak:
CREATE OR REPLACE FUNCTION foo()
RETURNS void AS
$BODY$
COPY data_1
FROM E'C:\\Users\\Abhishek\\Desktop\\data1.csv'
USING delimiters ',';
$BODY$
LANGUAGE sql VOLATILE SECURITY DEFINER
SET search_path = public, pg_temp; -- or whatever schema the table is in
REVOKE ALL ON FUNCTION foo() FROM public;
GRANT SELECT ON FUNCTION foo() TO my_user;
Należy również pamiętać, że właściwa składnia ciągów ucieczki jest:
E'C:\\Users\\Abhishek\\Desktop\\data1.csv'
Zwróć uwagę na E'...'
.
Od wersji 9.1 ustawienie standard_conforming_strings
jest domyślnie włączony, wymuszając to.