Github user patricker commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2243#discussion_r166180285
  
    --- Diff: 
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteSQL.java
 ---
    @@ -202,56 +205,63 @@ public void process(InputStream in) throws 
IOException {
                 st.setQueryTimeout(queryTimeout); // timeout in seconds
     
                 logger.debug("Executing query {}", new Object[]{selectQuery});
    -            boolean results = st.execute(selectQuery);
    +            boolean hasResults = st.execute(selectQuery);
    +            boolean hasUpdateCount = st.getUpdateCount() != -1;
    --- End diff --
    
    I haven't run into any issues with calling `execute` instead of 
`executeUpdate`. I did some additional research and found the following 
concerning `execute`: https://stackoverflow.com/a/16625802/328968
    
    > "*Executes the given SQL statement, which may return multiple results. In 
some (uncommon) situations, a single SQL statement may return multiple result 
sets and/or update counts. Normally you can ignore this unless you are (1) 
executing a stored procedure that you know may return multiple results or (2) 
you are dynamically executing an unknown SQL string.*"
    
    Or the answer after that which provides more details on each type of call, 
`execute`, `executeUpdate`, and `executeQuery`: 
https://stackoverflow.com/a/37509744/328968.


---

Reply via email to