2016-05-17 48 views
0

我正在运行一个Netezza SQL查询,该查询通过select语句创建一个表,返回将近80亿行。下面是该查询:无法理解数十亿行的更新计数INSERT

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

您使用的数据库是?什么是你正在运行的SQL查询? – azurefrog

+0

也许驱动程序/ db只能处理可以用32位或更少位来表示的整数,至少在这种情况下。你还没有真正让我们继续下去。 –

+0

@azurefrog它被标记为Netezza。我也添加了查询,虽然我不认为它在这种情况下特别有用。 –

回答

3

我认为您正在运行JDBC驱动程序限制。如果运行一个INSERT,更新,创建通过JDBC和插入,更新的行的数目AS SELECT或创建的超过2147483647,将收到类似于以下的错误消息:

Unable to fathom update count INSERT 0 5120000160 

上述错误消息可以是给出不同的INSERT,UPDATE或CREATE作为SELECT并给出实际影响的行数。这是JDBC规范本身的限制。

谢谢, Sanjit