Partager via


Utilisation d'une procédure stockée avec des paramètres d'entrée

Télécharger le pilote JDBC

Une procédure stockée SQL Server que vous pouvez appeler est une procédure contenant un ou plusieurs paramètres IN, qui sont des paramètres pouvant servir à transmettre des données dans la procédure stockée. Le pilote JDBC Microsoft pour SQL Server fournit la classe SQLServerPreparedStatement que vous pouvez utiliser pour appeler ce type de procédure stockée et traiter les données retournées.

Quand vous utilisez le pilote JDBC pour appeler une procédure stockée avec des paramètres IN, vous devez utiliser la séquence d’échappement SQL call conjointement avec la méthode prepareCall de la classe SQLServerConnection. La syntaxe de la séquence d’échappement call avec les paramètres IN est la suivante :

{call procedure-name[([parameter][,[parameter]]...)]}

Notes

Pour plus d’informations sur les séquences d’échappement SQL, consultez Utiliser des séquences d’échappement SQL.

Quand vous construisez la séquence d’échappement call, spécifiez les paramètres IN à l’aide du caractère ? (point d'interrogation). Ce caractère fait office d'espace réservé pour les valeurs de paramètre qui sont transmises à la procédure stockée. Pour spécifier une valeur pour un paramètre, vous pouvez utiliser l'une des méthodes de définition de la classe SQLServerPreparedStatement. La méthode de définition que vous pouvez utiliser est déterminée par le type de données du paramètre IN.

Lorsque vous transmettez une valeur à la méthode de définition, vous devez spécifier non seulement la valeur réelle qui sera utilisée dans le paramètre, mais également la position ordinale dans la procédure stockée. Par exemple, si votre procédure stockée contient un seul paramètre IN, sa valeur ordinale sera 1. Si la procédure stockée contient deux paramètres, la première valeur ordinale sera 1 et la deuxième sera 2.

Pour obtenir un exemple de la manière d’appeler une procédure stockée contenant un paramètre IN, utilisez la procédure stockée uspGetEmployeeManagers figurant dans l’exemple de base de données AdventureWorks2022. Cette procédure stockée n'accepte qu'un seul paramètre d'entrée nommé EmployeeID, qui est une valeur entière, et retourne une liste récursive d'employés et de leurs directeurs basée sur la valeur EmployeeID spécifiée. Le code Java pour l'appel de cette procédure stockée est le suivant :

public static void executeSprocInParams(Connection con) throws SQLException {  
    try(PreparedStatement pstmt = con.prepareStatement("{call dbo.uspGetEmployeeManagers(?)}"); ) {  

        pstmt.setInt(1, 50);  
        ResultSet rs = pstmt.executeQuery();  

        while (rs.next()) {  
            System.out.println("EMPLOYEE:");  
            System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));  
            System.out.println("MANAGER:");  
            System.out.println(rs.getString("ManagerLastName") + ", " + rs.getString("ManagerFirstName"));  
            System.out.println();  
        }  
    }
}

Voir aussi

Utilisation d'instructions avec des procédures stockées