Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un procedimiento almacenado de SQL Server al que se puede llamar es aquel que contiene uno o más parámetros IN, parámetros que se pueden usar para pasar datos al procedimiento almacenado. El controlador JDBC de Microsoft para SQL Server ofrece la clase SQLServerPreparedStatement, que puede usar para llamar a este tipo de procedimiento almacenado y procesar los datos que devuelve.
Si usa el controlador JDBC para llamar a un procedimiento almacenado con los parámetros IN, debe usar la secuencia de escape call de SQL junto con el método prepareCall de la clase SQLServerConnection. La sintaxis de la secuencia de escape call con los parámetros IN es la siguiente:
{call procedure-name[([parameter][,[parameter]]...)]}
Nota
Para obtener más información sobre las secuencias de escape de SQL, consulte Usar secuencias de escape de SQL.
Al construir la call secuencia de escape, especifique los parámetros IN mediante el ? carácter (signo de interrogación). Este carácter actúa como marcador de posición para los valores de los parámetros pasados al procedimiento almacenado. Para especificar un valor de un parámetro, puede usar uno de los métodos del establecedor de la clase SQLServerPreparedStatement. El tipo de datos del parámetro IN determina el método establecedor que puede usar.
Al pasar un valor al método establecedor, debe especificar no solo el valor real que se usa en el parámetro, sino también la ubicación ordinal del parámetro en el procedimiento almacenado. Por ejemplo, si el procedimiento almacenado contiene un único parámetro IN, su valor ordinal es 1. Si el procedimiento almacenado contiene dos parámetros, el primer valor ordinal es 1 y el segundo 2.
Como ejemplo de cómo llamar a un procedimiento almacenado que contiene un parámetro IN, use el procedimiento almacenado uspGetEmployeeManagers en la base de datos de ejemplo AdventureWorks2025. Este procedimiento almacenado acepta un solo parámetro de entrada llamado EmployeeID (Id. del empleado), que es un valor entero, y devuelve una lista recursiva de empleados y sus jefes según el EmployeeID especificado. El código Java para llamar a este procedimiento almacenado es el siguiente:
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();
}
}
}
Vea también
Uso de instrucciones con procedimientos almacenadosRendimiento de los parámetros de instrucciones preparadas