H2 - (相当)长的 INSERT 失败,错误 42000

jlm*_*150 5 java h2

H2 内存中 - 插入 - 错误 42000

尝试过版本 1.4.196、1.4.197、1.4.199。

我还尝试在 H2 服务器(本地)上执行 INSERT :也失败

给出错误的行:(抱歉,但出于安全原因,我无法生成更多):

    INSERT INTO tb_ae (server,  record_id,  ...) 
    SELECT ... 
    FROM   vw_ofch_prepal_delta,   vw_ab_bie  
    WHERE  bie_tp IN ('S[*]') AND is_most_recent = 1;
Run Code Online (Sandbox Code Playgroud)

该语句的长度为 4.004 个字符。

该错误由 H2 指出为 [*](这不是语句的一部分)。

Evg*_*nov 6

H2 不在[*]字符串文字内设置错误标记。这意味着您很可能'之前在某个地方放错了角色。它可以是未封闭的字符串文字,未转义'某些字符串文字中的未转义字符(如果字符串文字包含该'字符,则应使用两个此类字符编写'')或杂散'字符。


小智 3

根据 H2 错误代码文档,您的查询中存在语法错误。

/**
 * The error with code <code>42000</code> is thrown when
 * trying to execute an invalid SQL statement.
 * Example:
 * <pre>
 * CREATE ALIAS REMAINDER FOR "IEEEremainder";
 * </pre>
 */
public static final int SYNTAX_ERROR_1 = 42000;
Run Code Online (Sandbox Code Playgroud)

由于您的查询太长且未完全复制。我建议再次审查查询,或者可能由其他人审查。您应该为表名创建小别名,并对每个列名使用别名以避免语法错误。