Oracle® Database Java Developer's Guide 10g Release 1 (10.1) Part Number B12021-01 |
|
|
View PDF |
This chapter provides a description of the DBMS_JAVA package. Use these entry points to provide methods for accessing RDBMS functionality from Java.
FUNCTION longname (shortname VARCHAR2) RETURN VARCHAR2
Return the full name from a Java schema object. Because Java classes and methods can have names exceeding the maximum SQL identifier length, OracleJVM uses abbreviated names internally for SQL access. This function simply returns the original Java name for any (potentially) truncated name. An example of this function is to print the fully qualified name of classes that are invalid:
select dbms_java.longname (object_name) from user_objects where object_type = 'JAVA CLASS' and status = 'INVALID';
FUNCTION shortname (longname VARCHAR2) RETURN VARCHAR2
You can specify a full name to the database by using the shortname()
routine of the DBMS_JAVA
package, which takes a full name as input and returns the corresponding short name. This is useful when verifying that your classes loaded by querying the USER_OBJECTS
view.
Refer to "Shortened Class Names" for examples of these functions.
FUNCTION get_compiler_option(what VARCHAR2, optionName VARCHAR2) PROCEDURE set_compiler_option(what VARCHAR2, optionName VARCHAR2, value VARCHAR2) PROCEDURE reset_compiler_option(what VARCHAR2, optionName VARCHAR2) These three entry points control the options of the Oracle Database Java compiler that Oracle Database delivers. See "Compiling Java Classes" for an example of these options.
FUNCTION resolver (name VARCHAR2, owner VARCHAR2, type VARCHAR2) RETURN VARCHAR2
This functions returns the resolver specification for a given object name
in schema owner
where object is of type type
. The caller must have EXECUTE privilege and have access to the given object to use this call.
The name parameter is the shortened name for the object. Refer to dbms_java.shortname()
for details.
The value of type is one of SOURCE
or CLASS
.
If there is an error then a null is returned. If the underlying object has changed then a ObjectTypeChangedException
may be signaled.
To execute this function:
select dbms_java.resolver('tst', 'SCOTT', 'CLASS') from dual;
which would return:
DBMS_JAVA.RESOLVER('TST','SCOTT','CLASS') ----------------------------------------- ((* SCOTT)(* PUBLIC))
FUNCTION derivedFrom (name VARCHAR2, owner VARCHAR2, type VARCHAR2) RETURN VARCHAR2
This function returns the source name for object name
in schema owner
where object is of type type
. The caller must have EXECUTE privilege and have access to the given object to use this call.
The name parameter (as well as the returned source) is the shortened name for the object. Refer to dbms_java.shortname()
for details.
The value of type is of SOURCE
or CLASS
.
If there is an error then a null is returned. If the underlying object has changed then a ObjectTypeChangedException
may be signaled.
The returned value will be null if the object was not compiled in the ojvm
.
To execute this function:
select dbms_java.derivedFrom('tst', 'SCOTT', 'CLASS') from dual;
which would return:
DBMS_JAVA.DERIVEDFROM('TST','SCOTT','CLASS') ----------------------------------------- tst
FUNCTION fixed_in_instance (name VARCHAR2, owner VARCHAR2, type VARCHAR2) RETURN NUMBER
This function returns the permanently kept status for object name
in schema owner
where the object is of type type
. The caller must have EXECUTE privilege and have access to the given object to use this call.
The name parameter is the shortened name for the object. Refer to dbms_java.shortname()
for details.
The value of type is of RESOURCE
, SOURCE
, CLASS
, or SHARED_DATA
.
The return number is either 0 (not kept) or 1 (kept).
To execute this function:
select dbms_java.fixed_in_instance('tst', 'SCOTT', 'CLASS') from dual;
which would return:
DBMS_JAVA.FIXED_IN_INSTANCE('TST','SCOTT','CLASS') ----------------------------------------- 0
or
select dbms_java.fixed_in_instance('java/lang/String', 'SYS', 'CLASS') from dual;
which would return:
DBMS_JAVA.FIXED_IN_INSTANCE('JAVA/LANG/STRING','SYS','CLASS') ------------------------------------------------------------- 1
PROCEDURE set_output (buffersize NUMBER)
This procedure redirects the output of Java stored procedures and triggers to the DBMS_OUTPUT
package. See "Redirecting Output on the Server" for an example.
PROCEDURE start_debugging(host varchar2, port number, timeout number) PROCEDURE stop_debugging PROCEDURE restart_debugging(timeout number)
These entry points start and stop the debug agent when debugging. See "Debugging Server Applications" for a description and example of these options.
procedure export_source(name varchar2, schema varchar2, blob BLOB) procedure export_source(name varchar2, blob BLOB) procedure export_source(name varchar2, CLOB clob) procedure export_class(name varchar2, schema varchar2, blob BLOB) procedure export_class(name varchar2, blob BLOB) procedure export_resource(name varchar2, schema varchar2, blob BLOB) procedure export_resource(name varchar2, blob BLOB) procedure export_resource(name varchar2, schema varchar2, clob CLOB) procedure export_resource(name varchar2, clob CLOB)
These entry points export a Java source, class, or resource schema object into an Oracle large object (LOB).
In all cases, name is the name of the Java schema object to be exported, schema is the name of the schema owning the object (if not supplied, then the current schema is used), and blob|clob is the large object that receives the specified Java schema object.
You cannot export a class into a CLOB, only into a BLOB. In addition, the internal representation of the source uses the UTF8 format, so that format is used to store the source in the BLOB as well.
PROCEDURE loadjava(options varchar2) PROCEDURE loadjava(options varchar2, resolver varchar2) PROCEDURE dropjava(options varchar2)
These procedures allow you to load and drop classes within the database using a call, rather than through the loadjava
or dropjava
command-line tools. To execute within your Java application, do the following:
call dbms_java.loadjava('... options...'); call dbms_java.dropjava('... options...');
The options are identical to those specified for the loadjava
and dropjava
command-line tools. Each option should be separated by a blank. Do not separate the options with a comma. The only exception to this is the loadjava
-resolver
option, which contains blanks. For -resolver
, specify all other options first, separate these options by a comma, and then specify the -resolver
options, as follows:
call dbms_java.loadjava('... options...', 'resolver_options');
Do not specify the following options, because they relate to the database connection for the loadjava
command-line tool: -thin,
-oci,
-user,
-password
. The output is directed to System.err
. The output typically goes to a trace file, but can be redirected.
For more information on the available options, see Chapter 11, "Schema Object Tools" for complete information on loadjava
.
PROCEDURE grant_permission( grantee varchar2, permission_type varchar2, permission_name varchar2, permission_action varchar2 ) PROCEDURE restrict_permission( grantee varchar2, permission_type varchar2, permission_name varchar2, permission_action varchar2) PROCEDURE grant_policy_permission( grantee varchar2, permission_schema varchar2, permission_type varchar2, permission_name varchar2) PROCEDURE revoke_permission(permission_schema varchar2, permission_type varchar2, permission_name varchar2, permission_action varchar2) PROCEDURE disable_permission(key number) PROCEDURE enable_permission(key number) PROCEDURE delete_permission(key number)
These entry points control the JVM permissions. See "Setting Permissions" for a description and example of these options.
procedure set_preference(user varchar2,type varchar2, abspath varchar2, key varchar2, value varchar2)
This procedure inserts or updates a row in the SYS:java$prefs$
table as follows:
call dbms_java.set_preference('SCOTT','U','/my/package/method/three', 'windowsize','22:32');
The following table identifies the valid values for each parameter in this procedure.