Выполнить файл с SQLExec, содержащий символы $$
Я создал файл дампа sql, используя pg_dump. Этот файл экспорта содержит функции, содержащие символы $$. Нет проблем с импортом файла с помощью psql -f & lt; имя_файл & GT ;.
Если вы хотите импортировать файл с помощью ant с помощью задачи SQLExec, я получаю исключение:
org.postgresql.util.PSQLException: ERROR: syntax error at or near "$"
Есть ли способ импортировать файл, содержащий $$?
В журнале postgres кажется, что задачи SQLExec конвертируют $$ в $, что и вызывает ошибку.
ОШИБКА: синтаксическая ошибка в или около "$" на персонаже 87 ЗАЯВЛЕНИЕ: СОЗДАЙТЕ ФУНКЦИЮ process_create_servicenumber () RETURNS вызывает LANGUAGE plpgsql AS $ BEGIN IF (TG_OP = & lt; DELETE & apos;) THEN RETURN OLD
Вот мой метод
protected void importNewDbFromDumpFile() {
final class SqlExecuter extends SQLExec {
public SqlExecuter() {
Project project = new Project();
project.init();
setProject(project);
setTaskType("sql");
setTaskName("sql");
}
}
try {
SqlExecuter executer = new SqlExecuter();
executer.setSrc(new File(dbDumpFileLocation));
executer.setClasspath(createClasspath());
executer.setEscapeProcessing(true);
executer.setDriver("org.postgresql.Driver");
executer.setUrl("jdbc:postgresql://localhost/test");
executer.setPassword("test");
executer.setUserid("manager");
executer.execute();
} catch (Exception e) {
log.info("Exception importing database ...", e);
}
}