我正在尝试使用SAP Hana JDBC Driver中的/创建Scroll_Insensitive ResultSet。当我运行以下代码时:
Class.forName("com.sap.db.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:sap://10.32.86.10:30115/autocommit=false",username,password);
java.sql.Statement stmt = connection.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
java.sql.ResultSet resultSet = stmt.executeQuery("SELECT * FROM SAMPLE");
resultSet.next();
String hello = resultSet.getString(1);
我得到以下异常:
com.sap.db.jdbc.exceptions.jdbc40.SQLDataException: Invalid argument resultSetType, use TYPE_FORWARD_ONLY.
如果我用第三行替换:
java.sql.Statement stmt = connection.createStatement();
它没有任何障碍。我需要ResultSet为Scroll_Insensitive才能使用
等方法rs.previous(), rs.last(), rs.getRow(), etc.
相同的代码适用于MySQL,Microsoft SQL,TeraData&甲骨文。 SAP Hana有什么问题?有解决方法吗?
答案 0 :(得分:0)
答案就是错误消息所暗示的内容:SAP HANA的JDBC驱动程序(当前)仅为您提供FORWARD ONLY游标类型。
这里的问题是你在这里真正需要TYPE_SCROLL_INSENSITIVE游标类型的具体特征吗?
答案 1 :(得分:0)
我还遇到了同样的错误,我想检查已处理的行是否是结果集的最后一行,并在resultset对象上尝试rs.last()
方法。以下是我在SAP SCN上发现的内容:
由于使用仅向前游标时的性能提升我们 从TYPE_SCROLL_SENSITIVE更改了结果集类型的默认值 从JDBC驱动程序版本7.6开始到TYPE_FORWARD_ONLY。所以我想 例外来自你没有设置的声明 创建它时的结果集类型。请检查是否全部 您想要滚动的语句设置正确 结果集类型。
这是线程的链接: The operation is not allowed for result set type FORWARD_ONLY