首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高SQL_ACTIVE_STATEMENTS限值

如何提高SQL_ACTIVE_STATEMENTS限值
EN

Stack Overflow用户
提问于 2014-02-06 16:10:39
回答 1查看 908关注 0票数 0

我的代码在少量查询中运行良好。

代码语言:javascript
复制
for (int i = 0 ; i < queries.length ; i ++ ) {
        PreparedStatement stmt=conn.prepareStatement(queries[i]);
        if (queries[i].toUpperCase().contains("SELECT ") && !queries[i].toUpperCase().contains("CREATE ") && !queries[i].toUpperCase().contains("DROP ") && !queries[i].toUpperCase().contains("DELETE "))
        {  rs=stmt.executeQuery(); }
        else {stmt.executeUpdate();}
    }

我想我找到了第16条声明的以下错误

代码语言:javascript
复制
Exception in thread "main" java.sql.SQLException: 
[Teradata][ODBC Teradata Driver] Beyond SQL_ACTIVE_STATEMENTS limit

如何提高SQL_ACTIVE_STATEMENTS的限制?

我试过了

代码语言:javascript
复制
    Connection conn = DriverManager.getConnection(conUrl,user,password);
    conn.setHoldability(20);
    conn.setClientInfo( // 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-06 16:19:35

你问错问题了。您的问题不是修改SQL_ACTIVE_STATEMENTS LIMIT (顺便说一下,它看起来是一个常量,因此不能更改),而是在使用完之后关闭每个语句。

代码语言:javascript
复制
public static void main(String[] args) throws SQLException {
    for (int i = 0; i < queries.length; i++) {
        PreparedStatement stmt = conn.prepareStatement(queries[i]);
        try {          
            if (queries[i].toUpperCase().contains("SELECT ") && !queries[i].toUpperCase().contains("CREATE ") && !queries[i].toUpperCase().contains("DROP ") && !queries[i].toUpperCase().contains("DELETE ")) {
                rs = stmt.executeQuery();
            } else {
                stmt.executeUpdate();
            }
        } finally {
            stmt.close();
        }
    }
}

请记住,关闭语句也会关闭任何相关的ResultSet (顺便说一句,这里没有声明)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21608095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档