in reply to sth->execute returns undef when successful

On larger longer running queries (about 40 min) is when it gets the return value of undf

I have no idea if this is the case in your situation, but maybe the network connection gets cancelled by some appliance (load balancer or firewall) between your client and your server. A network sniffer like wireshark on the client side or the server log could maybe tell you for the long-running queries if there was an unexpected disconnection while the query was executing.

One approach for a workaround could be to partition up your statements into smaller statements that execute quicker, for example by looping over limited clauses like where id between 0 and 1000000 etc., but that way you might lose transaction safety.

Maybe the Oracle client library has a way to send keep-alive packets during query execution so that the network path remains open?

Replies are listed 'Best First'.
Re^2: sth->execute returns undef when successful
by BrowserUk (Patriarch) on Aug 08, 2015 at 21:09 UTC

    That crossed my mind too; but it looks like the query is returning successfully internally, but then the driver is returning false:

    dbd_st_execute CREATE returned (SUCCESS, rpc2211750915, fn1, +out0) 09 <- execute= undef at ./test_query.pl line 80

    Another thought that crossed my mind was that if the statement didn't modify any lines, and the driver was returning 0 instead of "0E0", that would appear false even though the statement had succeeded.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
    In the absence of evidence, opinion is indistinguishable from prejudice.
    I'm with torvalds on this Agile (and TDD) debunked I told'em LLVM was the way to go. But did they listen!