Calling Object Methods
A database
object can have two kinds of methods:
static or member. The first, static, is just like a static Java
method, in that it can be called by using its type name, just as a
static Java method is called using its class name. For example, type
person_typ
, which has a static method
get_id( )
that returns the next
person_id
sequence value, can be called as a
stored procedure:
person_typ.get_id( )
To execute get_id( )
, use a
callable statement, which we covered in Chapter 13.
Although using a callable statement to execute a static method is
pretty straightforward, calling member methods presents a new
problem.
Member methods -- just like their public, nonstatic Java
counterparts -- must be associated with an instance of the object
in order to be executed. But how do you get an instance of the object
in the database to execute its member method? Your first guess might
be to use a reference, which makes pretty good sense to me, too. But
the functionality to execute a member method with a reference
doesn’t exist yet. Instead, use the object value returned from
the database value( )
function or the proprietary
oracle.sql.REF
object’s getValue( )
method. In this case, that object
value is a Struct
, and you pass that
Struct
as the first argument of the
member function or procedure. Pass it as the first argument even
though it is not a visibly defined parameter. The syntax is:
user_defined_type.method_name(
self inuser_defined_type
[,parameter_1
INdata_type ...
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.