0

teiidというデータ仮想化システムについて質問したいのですが、次のようなクエリを作成すると:

SELECT teiid2602.KC.{**some chinese character**}
FROM teiid2602.KC 
WHERE teiid2602.KC.id is not null;

Teiid システムは次のメッセージを返します。

odbc_exec(): SQL error: [unixODBC]ERROR: TEIID30504 KK: 1054 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.`mobile`, g_0.`{**some chinese character**}` FROM `teiid2602`.`KC` AS g_0]
org.teiid.jdbc.TeiidSQLException: TEIID30504 KK: 1054 TEIID11008:TEIID11004 Error executing statement(s): [Prepared Values: [] SQL: SELECT g_0.`mobile`, g_0.`{**some chinese character**}` FROM `teiid2602`.`KC` AS g_0];
Error while executing the query, SQL state S0022 in SQLExecDirect

しかし、MySQL ワークベンチでこのクエリを実行できるので、Teiid が漢字クエリをサポートしているかどうか、または同様の問題に遭遇し、それを修正する方法を知っている人がいるかどうか疑問に思います。

4

1 に答える 1

0

Teiid SQL パーサーは、次の文字を文字として扱います: ラテン文字の az と AZ、および \u0153-\ufffd の Unicode 範囲。とにかく、Teiid が中国語の名前を含む最終出力 SQL クエリを生成した場合、フィールド名に使用した特定の文字を確実にサポートします。したがって、問題は mysql 自体または生成された出力クエリに関するものである可能性があります (提供した元のクエリでは、生成されたクエリに含まれる「モバイル」フィールドへの参照はありません)。

いずれにせよ、何が問題なのかを突き止める最良の方法は、生成されたクエリをログからコピーし、MySQL で直接実行することです。

于 2014-09-28T20:46:38.913 に答える