Wykonaj plik z SQLExec zawierający znaki $$

Utworzono plik zrzutu sql przy użyciu pg_dump. Ten plik eksportu zawiera funkcje zawierające znaki $. Nie ma problemu, aby zaimportować plik za pomocą psql -f <nazwa pliku>.

Jeśli chcesz zaimportować plik za pomocą mrówki za pomocą zadania SQLExec, otrzymuję wyjątek, taki jak:

org.postgresql.util.PSQLException: ERROR: syntax error at or near "$"

Czy istnieje sposób na zaimportowanie pliku zawierającego $?

W dzienniku postgres wydaje się, że zadania SQLExec konwertują $ na $, co powoduje błąd.

BŁĄD: błąd składni przy lub w pobliżu „$” przy znaku 87 OŚWIADCZENIE: CREATE FUNCTION process_create_servicenumber () RETURNS trigger LANGUAGE plpgsql AS $ BEGIN IF (TG_OP = 'DELETE') NASTĘPNIE POWRÓT STARE

Oto moja metoda

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);
    }
}

questionAnswers(1)

yourAnswerToTheQuestion