Chapter 3. Table Functions


A table function is a function that can be used as a data source for a query. For example, you can include a table function in the FROM clause of a SELECT statement in a PL/SQL program. Even more exciting is the fact that a table function can return records. (In fact, it returns a collection of objects.) These two behaviors alone make table functions very useful in situations where complex processing needs to be hidden behind a single SELECT statement, such as in reports and API components. Add to these features the ability to pipeline and parallelize table functions and you have a very powerful tool for transformative processes like Data Warehouse Extraction, Transformation, Loading (ETL).

It's clear that table functions provide benefits to report developers and Data Warehouse techies, but you may be wondering why DBAs should care about them. The short answer is that you need to know about them because others in your organization might not. Many developers aren't even aware that table functions exist, let alone how they can help in building better and faster applicationsand that's where DBAs come in. Consider a developer whose report query has become increasingly complex as requirements have changed, until performance is now unacceptable. He may have tried every combination of subquery and outer join, all to no avail. The processing is obviously much too complex to expect a single SELECT statement to handle it, but the report interface dictates that it needs it to remain a single statement. In such situations, DBAs are often right there in the trenches, trying to help developers by running explain plans and partitioning and repartitioning tables in the hope of making things faster. You may have reached your collective wits' end and wish there were some way of mimicking Oracle's own query mechanisms so that you could assemble result sets yourself. With table functions, you can!

This chapter describes how table functions work and how you can take advantage of them in your environment. It also describes how table functions interact with cursors and how you can pipeline, nest, and parallelize these functions for even greater performance. Finally, the chapter discusses the use of table functions in a variety of real applications.




Oracle PL(s)SQL For DBAs
Oracle PL(s)SQL For DBAs
ISBN: N/A
EAN: N/A
Year: 2005
Pages: 122

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net