Использование хранимых процедур без параметров
Простейший вид хранимой процедуры SQL Server, которую можно вызвать, не содержит никаких параметров и возвращает один результирующий набор. Microsoft JDBC Driver для SQL Server предоставляет класс SQLServerStatement, который можно использовать для вызова хранимой процедуры такого типа и обработки возвращаемых ею данных.
При использовании драйвера JDBC для вызова хранимых процедур без параметров необходимо использовать escape-последовательность SQL call
. Синтаксис escape-последовательности call
без параметров:
{call procedure-name}
Примечание.
Дополнительные сведения об использовании escape-последовательностей в SQL см. в этой статье.
Например, создайте следующую хранимую процедуру в примере базы данных AdventureWorks2022:
CREATE PROCEDURE GetContactFormalNames
AS
BEGIN
SELECT TOP 10 Title + ' ' + FirstName + ' ' + LastName AS FormalName
FROM Person.Contact
END
Эта хранимая процедура возвращает один результирующий набор, который содержит один столбец данных, представляющий собой сочетание названия, имени, фамилии 10 основных контактов, которые хранятся в таблице Person.Contact.
В следующем примере открытое подключение к образцу базы данных 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"));
}
}
}