Конкатенация Apache Derby (JavaDB) в отношении SQL92T (строка Prepend для существующего набора данных)

Я новичок в JavbDB и мне нужно просто добавить строку в существующую ячейку базы данных следующим образом:

public boolean updateChildNodes(String filePath, String parentPath)
        throws SQLException {

    // Set new parent path for all child nodes
    String sql = "UPDATE sc_compare SET parentPath = (? || parentPath)"
            + "WHERE parentPath = ?";

    try (Connection connection = this.connect();
         PreparedStatement pstmt = connection.prepareStatement(sql)) {

        // set the corresponding param
        int i = 1;
        pstmt.setString(i++, parentPath);
        pstmt.setString(i++, filePath+"%");
        // update
        pstmt.executeUpdate();
    } catch (SQLException | ClassNotFoundException e) {
        System.out.println("updateChildNodes() "+e.getMessage());
        return false;
    }

    return true;
}

Пример вызова:

updateChildNodes("/old path/", "/new_parent");

Для существующей записи "/old_path/" я ожидаю "/new_parent/old_path/".

Я получаю TAG вместо подготовленного заполнителя в качестве строки.

Можно ли использовать подготовленные строки с конкатенацией JavaDB и что я делаю неправильно?

0 ответов

Другие вопросы по тегам