Você executou a instrução como superusuário no psql e como outro usuário via JDBC?
O manual nos diz :
Você pode contorne essa restrição envolvendo a instrução em uma função com
SECURITY DEFINER
propriedade de um superusuário. Esteja ciente dos riscos de segurança . Você também pode querer REVOKE
todos os direitos do público e somente GRANT
aos usuários selecionados. Poderia ficar assim: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;
Além disso, saiba que a sintaxe adequada para strings de escape é:
E'C:\\Users\\Abhishek\\Desktop\\data1.csv'
Observe o
E'...'
.A partir da versão 9.1, a configuração
standard_conforming_strings
está ativado por padrão, impondo isso.