パラメーターのないストアド プロシージャの使用
呼び出すことができる最も簡単な種類の SQL Server ストアド プロシージャは、パラメーターを含まず、1 つの結果セットを返すものです。 Microsoft JDBC Driver for SQL Server が提供する SQLServerStatement クラスを使用すると、この種類のストアド プロシージャを呼び出し、返されるデータを処理できます。
JDBC ドライバーを使用してパラメーターのないストアド プロシージャを呼び出すときは、call
SQL エスケープ シーケンスを使用する必要があります。 パラメーターを持たない call
エスケープ シーケンスの構文は次のとおりです。
{call procedure-name}
注意
SQL エスケープ シーケンスの詳細については、「SQL エスケープ シーケンスの使用」を参照してください。
例として、AdventureWorks2022 サンプル データベースで次のストアド プロシージャを作成します。
CREATE PROCEDURE GetContactFormalNames
AS
BEGIN
SELECT TOP 10 Title + ' ' + FirstName + ' ' + LastName AS FormalName
FROM Person.Contact
END
このストアド プロシージャは、1 つのデータ列を含む 1 つの結果セットを返します。このデータは、Person.Contact テーブル内の先頭から 10 件の連絡先の役職、名、および姓の組み合わせです。
次の例の関数は、AdventureWorks2022 サンプル データベースに対して開かれた接続を渡され、executeQuery メソッドを使って GetContactFormalNames ストアド プロシージャを呼び出します。
public static void executeSprocNoParams(Connection con) throws SQLException {
try(Statement stmt = con.createStatement();) {
ResultSet rs = stmt.executeQuery("{call dbo.GetContactFormalNames}");
while (rs.next()) {
System.out.println(rs.getString("FormalName"));
}
}
}