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