在可以调用的 SQL Server 存储过程中,最简单的类型是不包含任何参数并且返回单个结果集的存储过程。可以使用 Microsoft SQL Server 2005 JDBC Driver 提供的 SQLServerStatement 类,调用此类存储过程并处理其返回的数据。

使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列。不带参数的 call 转义序列的语法如下所示:

{call procedure-name}

Note注意:

有关 SQL 转义序列的详细信息,请参阅使用 SQL 转义序列

作为实例,在 SQL Server 2005 AdventureWorks 示例数据库中创建以下存储过程:

CREATE PROCEDURE GetContactFormalNames 
AS
BEGIN
   
SELECT TOP 10 Title + ' ' + FirstName + ' ' + LastName AS FormalName 
   
FROM Person.Contact
END

此存储过程返回单个结果集,其中包含一列数据(由 Person.Contact 表中前十个联系人的称呼、名称和姓氏组成)。

在下面的实例中,将向此函数传递 AdventureWorks 示例数据库的打开连接,然后使用 executeQuery 方法调用 GetContactFormalNames 存储过程。

public static void executeSprocNoParams(Connection con) {
   
try {
      Statement stmt 
= con.createStatement();
      ResultSet rs 
= stmt.executeQuery("{call dbo.GetContactFormalNames}");

      
while (rs.next()) {
         System.out.println(rs.getString(
"FormalName"));
      }
      rs.close();
      stmt.close();
   }
   
catch (Exception e) {
      e.printStackTrace();
   }
}