问题描述
||
我一直在尝试使用基于JDBC的SQL查询来检索所有表的约束数据。
我的测试数据库只有3个表。
如果我使用MS SQL Server Management Studio以交互方式执行查询,则会得到所有期望的结果(即3行-3个表中的每个都有一个主键)。
如果我使用JDBC方法专门检索主键(如下所示),那么我也可以正确地得到3个结果:
ResultSet rs = dbmd.getPrimaryKeys(jdbcCatalog,jdbcSchema,jdbcTableName);
如果我使用完全相同的SQL语句(以交互方式使用并返回3个结果)作为通过JDBC的查询(使用下面显示的executeQuery()),则我只会得到1个结果,而不是预期的3个。
String query =
\"select PK.CONSTRAINT_NAME,PK.TABLE_SCHEMA,PK.TABLE_NAME \" +
\"from information_schema.TABLE_CONSTRAINTS PK\";
ResultSet rs = null;
try {
Statement stmt = con.createStatement();
rs = stmt.executeQuery(query);
}catch (Exception exception) {
// Exception handler code
}
while (rs.next()){
// Only executes once.
}
如果有人能解释为什么通过JDBC进行的SQL查询与完全相同的以交互方式执行的SQL查询不同,我将不胜感激。可能是安全/所有权问题吗? (尽管JDBC调用getPrimaryKeys()不会遭受这种情况)
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)