2016-12-16 10 views
0

コレクションの名前に1a84375b-9bd0-4ec3-9f93-536ce380f813のような特殊文字が含まれていると、MongoDBでSQLクエリを実行する方法はありますか?私は文を実行するとorg.apache.calcite.sql.parser.impl.ParseExceptionが発生します。エスケープ文字はありますか?Apache Calcite:MongoDBコレクション名の特殊文字の扱い

答えて

1

Calcite SQLでは、識別子(テーブル名とカラム名)を引用することができます。デフォルトの方言では、二重引用符を使用します。例えば、

SELECT "a column" 
FROM "a table with spaces in the name" 

も識別子が引用されている場合、方解石は、それらのケースを保持したとき(それが大文字または小文字に変換されない)と、大文字と小文字を区別マッチングを使用することに注意してください。

ところで、これはOracleと他のいくつかの一般的なSQL方言と同じです。

+0

それは私のためにうまく動作します。 SQL_SERVERの既定の方言を変更しました。今、私は、[6a3c9c9a-a607-46ad-8fca-7308d82d58a4] .idを実行しようとすると、テーブル '6a3c9c9a-a607-46ad-8fca-7308d82d58a4'が見つかりませんでした。 [6a3c9c9a-a607-46ad-8fca-7308d82d58a4] .name FROM [6a3c9c9a-a607-46ad-8fca-7308d82d58a4]からMongoDBデータベースに対して。私はすでにsqllineでそれを試してみましたが、テーブル名として6a3c9c9a-a607-46ad-8fca-7308d82d58a4の存在を確認しました。 – Pete