How to call an Oracle stored procedure in Spring Boot

An Oracle stored procedure is a PL/SQL block that performs a specific task or set of tasks in an Oracle database. It is stored in the database and can be called by other database objects or applications. Stored procedures in Oracle are commonly used to encapsulate complex logic, improve performance, and enforce data integrity.

Oracle stored procedure in Spring Boot

Start by creating a Spring Boot project or use an existing one. Ensure that the necessary dependencies have been added to the project’s build file, including the Oracle JDBC driver.

Configure data source

In the application.properties or application.yml file, configure the Oracle database’s connection properties, including the URL, username, and password. We can use Spring Boot’s DataSource configuration for this.

spring.datasource.url=jdbc:oracle:thin:@localhost:1521/your_database
spring.datasource.username=your_username
spring.datasource.password=your_password
Application properties

Create a repository interface

Define a repository interface for our stored procedure. We can use Spring Data JPA for this purpose. Annotate the method with @Procedure and specify the stored procedure name.

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.query.Procedure;
import java.util.List;
public interface MyRepository extends JpaRepository<MyEntity, Long> {
@Procedure("your_stored_procedure_name")
List<Object> executeYourStoredProcedure(/* parameters if any */);
}
Repository for calling stored procedure

Call the stored procedure

In our service or controller class, inject the repository and call the stored procedure method as we would with any other Spring Data JPA method.

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class MyService {
private final MyRepository myRepository;
@Autowired
public MyService(MyRepository myRepository) {
this.myRepository = myRepository;
}
public List<Object> callStoredProcedure() {
return myRepository.executeYourStoredProcedure(/* pass parameters if required */);
}
}

Explanation:

Line 5: Create a MyService class.

Line 7: Create a private repository named myRepository.

Line 10–11: Create a constructor for the MyService class.

Line 14–15: Create a callStoredProcedure() function and call the stored procedure in this function.

Handle the results

The results of the stored procedure call are returned as a list of objects. We can then process these results as needed within our Spring Boot application.

Testing

Write unit tests for our service class to ensure the stored procedure is being called correctly and the results are as expected.

Error handling

Implement error handling mechanisms to gracefully handle any exceptions that might occur during the stored procedure call.

Conclusion

Integrating Oracle stored procedures with Spring Boot allows us to efficiently leverage the database’s power while benefiting from the features and flexibility of the Spring framework. By following these steps, we can seamlessly call Oracle stored procedures in our Spring Boot application, making it a powerful and efficient enterprise solution.

Unlock your potential: Oracle series, all in one place!

To continue your exploration of Oracle, check out our series of Answers below:

  • How to execute an Oracle stored procedure with return value
    Learn how to execute Oracle stored procedures in Python using cx_Oracle by connecting, creating a cursor, calling the procedure, retrieving values, and closing resources, with customization for your database needs.

  • What are blockchain oracles?
    Learn how blockchain oracles bridge data between blockchains and the outside world, playing a crucial role in smart contracts. They come in centralized and decentralized forms, enhancing reliability.

  • How to disable Oracle triggers?
    Learn how to disable an Oracle trigger using ALTER TRIGGER trigger_name DISABLE; and re-enable it with ALTER TRIGGER trigger_name ENABLE;.

  • How to call Oracle stored procedure in Spring Boot?
    Learn how to create a Spring Boot project, configure an Oracle data source, define a repository with @Procedure, call a stored procedure, handle results, and implement error handling.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved