次のコードを使用して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から答えを得ました3210私はこのようなクエリを変更し、それは働いた。
String query = "ALTER TABLE \"georbis\\:world_boundaries\" DROP COLUMN testcolumn";
Javaパーサはクエリパラメータのプレースホルダとして ':word_boudaries'を取得します。たぶん、セミコロン(私はJavaを使用しない)をエスケープしようとします。 – klin
@ニースあなた自身の質問に答えることができます。解決部分を問題にするのではなく、答えとして追加する方がよいでしょう。 48時間後にあなた自身の答えを受け入れることができます。一方、あなたの質問がその質問と重複している場合は、それに印を付けてください。 –