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, ...

Get Java Programming with Oracle JDBC now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.