当我创建这样的查询时,我想问一个名为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是否支持汉字查询,或者是否有人遇到类似的问题并知道如何修复它。
发布于 2014-09-28 20:46:38
Teiid解析器将以下字符视为字母:拉丁字母A和A,以及unicode范围\u153-\ufffd。无论如何,如果Teiid生成包含中文名称的最终输出SQL查询,它肯定支持用于字段名的特定字母。因此,问题可能与mysql本身有关,也可能与生成的输出查询有关(在您提供的原始查询中,当生成的查询包含“mobile”字段时,没有对“mobile”字段的引用)。
无论如何,找出问题所在的最好方法是从日志中复制生成的查询,然后尝试在MySQL.上直接执行它。
https://stackoverflow.com/questions/23647763
复制相似问题