当前位置: 首页 > 面试题库 >

从JDBC调用Sybase Adaptive Server Enterprise的“ p_help”

凤高澹
2023-03-14
问题内容

不幸的是,我似乎找不到任何文档,应该如何sp_help从JDBC调用。根据文档,sp_help返回几个游标/结果集。第一个包含有关表本身的信息,第二个包含有关列的信息,等等。当我这样做时:

PreparedStatement stmt = getConnection().prepareStatement("sp_help 't_language'");
ResultSet rs = stmt.executeQuery();

while (rs.next()) {
    System.out.println(rs.getObject(1));
    // ...
}

我只从第一个光标得到结果。如何访问其他?


问题答案:

当您有多个结果集时,需要使用execute()方法而不是executeQuery()。
这是一个例子:

CallableStatement cstmt;
ResultSet rs;
int i;
String s;
...
cstmt.execute();                        // Call the stored procedure       1 
rs = cstmt.getResultSet();              // Get the first result set        2 
while (rs.next()) {                     // Position the cursor             3 
 i = rs.getInt(1);                      // Retrieve current result set value
 System.out.println("Value from first result set = " + i);  
                                        // Print the value
}
cstmt.getMoreResults();                 // Point to the second result set  4a 
                                        // and close the first result set
rs = cstmt.getResultSet();              // Get the second result set       4b 
while (rs.next()) {                     // Position the cursor             4c 
 s = rs.getString(1);                   // Retrieve current result set value
 System.out.println("Value from second result set = " + s); 
                                        // Print the value
}
rs.close();                             // Close the result set
cstmt.close();                          // Close the statement


 类似资料:
  • 我有一个JSP页面,其中我包含了使用JDBC进行DB连接的java bean作为选择选项。现在我想使用servlet做同样的事情。JDBC连接代码在Servlet中。JSP页面有一个选择选项,我需要在表单加载时在其中包含数据库值。我已经搜索过,但大多数示例都使用strut和ajax。我还不需要strut,因为它是在表单加载上并且不依赖于选择选项的更改,所以我无法通过它。 JSP页面(相关代码):

  • 我有一个带有一些表的postgresql数据库和一个在这个表上写的存储过程。当我从调用这个存储过程时,一切都很顺利:我看到我的记录插入了我的表中。虽然,当我通过JDBC调用这个存储过程时,我得到了存储过程执行的日志,序列是递增的,但是我的表没有更新。 以下是我在新安装的postgresql(9.5.1)中执行的SQL: 表格创建: 存储过程的创建: 从调用awrites存储过程实际上会触发post

  • 有一个SQL数据库包含此过程 t_字段类型的定义如下: 我正在使用JDBC调用该过程,我知道我需要一个连接和一个callStmt,但我不确定如何处理t_字段参数映射。有什么建议吗?

  • 这是我第一次存储作业,并使用crontrigger使用下面的代码对作业进行调度。 详细信息存储在表中--、&

  • 主要内容:创建CallableStatement对象,关闭CallableStatement对象,JDBC SQL转义语法在讨论JDBC Statement教程文章时,我们已经学习了如何在JDBC中使用存储过程。 本教程文章与该部分类似,但它将讲解演示有关JDBC SQL转义语法的其他信息。 就像对象创建和对象一样,它可使用同样的方式创建对象,该对象将用于执行对数据库存储过程的调用。 创建CallableStatement对象 假设需要执行以下Oracle存储过程 - 注意:上面的存储过程是为O

  • 我创建了一个存储过程,如下所示: //mysql中的存储过程 并且我正在调用Java中的存储过程,如下所示: //使用JDBC调用存储过程 但它显示了一个编译时异常,如下所示: CAN在参数中为存储的函数调用的返回值设置。