Я пытаюсь изменить таблицу postgreSQL, используя следующий код.SQLGrammerException: не удалось выполнить оператор
String query = "ALTER TABLE \"georbis:world_boundaries\" DROP COLUMN testcolumn";
sessionFactory.openSession().createSQLQuery(query).executeUpdate();
Проблема: мое имя таблицы содержит двоеточие (:), из-за которого я получаю следующую ошибку.
ERROR: unterminated quoted identifier at or near ""georbis? DROP COLUMN testcolumn" at character 13
STATEMENT: ALTER TABLE "georbis? DROP COLUMN testcolumn
Другие ответы подобные вопросы предполагают, что я должен поставить двойные кавычки (") вокруг имени таблицы, которые я пытался, но все еще получаю ту же ошибку.
Кроме того, когда я запускаю тот же запрос от . редактор SQL работает прекрасно Я также попытался запустить тот же запрос для таблицы, которая не содержит двоеточие (:), и она работала
Решение.. Спасибо всем Получил ответ от HERE Я изменил свой запрос таким образом, и он сработал.
String query = "ALTER TABLE \"georbis\\:world_boundaries\" DROP COLUMN testcolumn";
Кажется, что парсер Java получает ': word_boudaries' в качестве заполнителя для параметра запроса. Может быть, попытайтесь избежать точки с запятой (я не использую Java). – klin
@Neelesh Вы можете ответить на свой вопрос. Лучше добавить часть решения в качестве ответа вместо того, чтобы дать ему вопрос. И через 48 часов вы можете принять свой собственный ответ. С другой стороны, если ваш вопрос дублирует этот вопрос, отметьте его так. –