簡體   English   中英

executeUpdate在大表上返回負值

[英]executeUpdate returns negative value on large table

使用readline 5.1為Linux(x86_64)運行mysql Ver 15.1 Distrib 5.5.44-MariaDB

我寫了一個Java servlet,它在SQL導出語句上運行executeUpdate()並返回整數值。

    String sql = "SELECT TRIM(CONCAT( field1, CallDate, field2, Minutes, field3, field4 )) INTO OUTFILE '/var/www/html/pld/CDROUT/test2.txt' LINES TERMINATED BY '\n' FROM CDRLEC";
    Statement s = dbConPLD.createStatement();
    int rows = s.executeUpdate(sql);
    // Returns number of rows affected by this process
    return (rows == 0) ? 0 : rows;

    // Then, in the calling servlet, I have this        
    String returnOutput = Integer.toString(rows);
    return returnOutput;

這對於只有幾千行的小表很好用。 當我在具有40,000行(准確地說是40,895)的表上運行此函數時,我得到一個很大的負數:-24641。 執行導入語句時,結果相同。 該文件是14MB。

當我從表中刪除所有導入的Recod時,結果也相同:“從CDRLEC中刪除”。 我得到了-24641行。

導出和導入已成功執行。 只是沒有看到40895,而是看到-24641行。 有人可以幫我弄清楚到底發生了什么嗎?

我正在使用JDBC Driver:MariaDB連接器/ J 1.4.2

我通過切換到以下方法解決了該問題:JDBC驅動程序:MySQL-AB JDBC驅動程序mysql-connector-java-3.0.17-ga

代碼現在按預期工作。

暫無
暫無

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

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