Refs
A java.sql.Ref
is an
object that holds a reference to a database object. Depending on how
you implement your Oracle objects, a Ref may hold
a global unique identifier (GUID) or a primary key column, and may
also contain a ROWID. But what it contains is moot. It’s how
you use a Ref that’s important. A
Ref object is simply an address to a database
object. With it, you can retrieve, or materialize, an object value.
And with Oracle’s implementation,
oracle.sql.REF, you can also update a value. But
you can’t create a new database reference in your Java program.
That simply doesn’t make any sense. Since a reference points to
a location of an object in the database, the database has to create a
reference when an object is inserted, and then you must retrieve the
newly created object’s reference into a Ref
object, similar to how we handled a Blob or
Clob in Chapter 12.
References can also be stored as attributes in other database objects
to establish relationships between objects. In this chapter,
we’ll cover how to retrieve a reference into a
Ref object, how to use it to materialize an object
value, and finally, how to use it to update a database object. So
let’s start with retrieving a reference.
Retrieving a Reference
To retrieve a reference from a database, use the ref( )
database function. Do you remember
how you used the value( ) function? Well, you use
the ref( ) database function the same way. You use it in a SELECT statement, passing it an alias for a table name. For example, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access