簡體   English   中英

H2 - (相當)長插入失敗,錯誤 42000

[英]H2 - (Quite) long INSERT failing with error 42000

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;

該語句的長度為 4.004 個字符。

該錯誤由 H2 指出為 [*](這不是語句的一部分)。

根據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;

由於您的查詢時間太長,無法完全復制。 我建議再次查看查詢,否則可能會被其他人查看。 您應該為表名創建一個小的別名,並為每個列名使用別名,以避免語法錯誤。

H2不在字符串文字中設置錯誤標記[*] 這意味着您很可能在更早的位置放錯了'字符。 它可以是一個未閉合的字符串中,未轉義'在一些字符串文字字符(如果文字串包含'字應該有兩個這樣的字符被寫為'' ),或雜散'字符。

如果您錯誤地編寫了插入內容,也可能發生這種情況

insert into `my_table` (`id`, `name`)
    values (1, 'ENTITY_1'),
    values (2, 'ENTITY_2');

粗心地復制和粘貼“值”兩次可能對眼睛來說並不明顯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM