Stored procedures remain one of the most common ways of separating the data tier from the logic tier of an application. They shield the developer from having to make changes to the code when the underlying database structure changes. And with stored procedures backed up by a powerful SQL dialect (PL/SQL), it isn't hard to see why many developers choose to stuff as much database logic as they can behind them.
In this chapter, we explore the different ways you can interact with PL/SQL code through ODP.NET. We will particularly look at how to accomplish the following:
Executing PL/SQL stored functions, functions, and anonymous blocks
Passing input data and retrieve output data from ...