gpt4 book ai didi

java - 从 JDBC 调用 Sybase Adaptive Server Enterprise 的 "sp_help"

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:40 25 4
gpt4 key购买 nike

为了在 Sybase ASE 中查询数据库元数据,我发现这个相关的答案(不是被接受的答案)是理想的:

From a Sybase Database, how I can get table description ( field names and types)?

不幸的是,我似乎找不到任何文档,我应该如何从 JDBC 调用 sp_help。根据the documentation , 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()。 Here's an example :

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

关于java - 从 JDBC 调用 Sybase Adaptive Server Enterprise 的 "sp_help",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7298719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com