0

我认为这将是一个简单的谷歌搜索,但我找不到答案:

我正在将 Access db 移动到 SQL Server,我已将一些查询转换为视图。我的 Java 应用程序曾经使用简单的方法调用每个查询:

{ call dbo.GetOtherRanges() } //Well, not entirely true - Access did not use 'dbo' schema in front of the name

这适用于存储过程。但是,当我对视图执行此操作时,我会收到以下信息:

[SQL Server]The request for procedure 'GetOtherRanges' failed because 'GetOtherRanges' is a view object.

我认为这就像删除()视图名称后的括号一样简单,但这并没有成功。

  • 如何使用 JDBC CallableStatment“调用”视图?
  • 还有其他调用表值函数的方法吗?
4

1 回答 1

3

Views可以像Tables在 JDBC 中一样访问。

你不需要一个CallableStatement

只需使用StatementorPreparedStatement就足够了。

如果您需要帮助,请参阅此处的示例代码 使用视图名称而不是 Table1

public void connectToAndQueryDatabase(String username, String password) {

    Connection con = DriverManager.getConnection(
                         "jdbc:myDriver:myDatabase",
                         username,
                         password);

    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");

    while (rs.next()) {
        int x = rs.getInt("a");
        String s = rs.getString("b");
        float f = rs.getFloat("c");
    }
}
于 2014-05-14T08:22:49.237 回答