Stored procedures offer excellent design compromises between scalability and portability. Although the JDBC API provides a mechanism to call a stored procedure, a higher level abstraction is needed to treat the output as a hierarchical set of result sets. This is possible in Oracle only via REFCURSORS. This article shows readers how to write a stored procedure in Oracle using REFCURSORS, and how to access REFCURSORS from Java. Readers will also learn how to use stored procedures from a JSP page using a pattern called "Transparent Data Access" that eliminates middle-tier (data beans ) coding. July 2001