パラメーターのないストアド プロシージャの使用

JDBC ドライバーのダウンロード

呼び出すことができる最も簡単な種類の 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"));  
        }  
    }  
}

関連項目

ストアド プロシージャでのステートメントの使用