无法通过数十亿行更新计数INSERT

时间:2016-05-17 18:05:54

标签: java sql database jdbc netezza

我正在运行一个Netezza SQL查询,该查询从select语句创建一个表,返回近80亿行。这是查询:

CREATE TABLE
    table1 AS
    (
        SELECT
            column1
        FROM
            table2 qt
        WHERE
           qt.column1 = '2016-04-04'
        UNION ALL
        SELECT
            column1
        FROM
            table3 qt
        WHERE
           qt.column1 = '2016-04-04'
   )

驱动程序抛出此错误:

org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [UNDEFINED]; error code [0];   
    --- The error occurred while applying a parameter map.  
    --- Check the statement (update failed).  
    --- Cause: Unable to fathom update count INSERT 0 7779737732

有谁知道造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:3)

我认为您遇到了JDBC驱动程序限制。如果您通过JDBC运行INSERT,UPDATE,CREATE AS SELECT并且INSERTed,UPDATEd或CREATEd的行数超过2147483647,您将收到类似于以下内容的错误消息:

Unable to fathom update count INSERT 0 5120000160

上面的错误消息可能是不同的,因为INSERT,UPDATE或CREATE是否为SELECT并且给出了实际受影响的行数。这是JDBC规范本身的限制。

谢谢, Sanjit