3 Oracle Multimedia ORDAudio Object Type

Oracle Multimedia provides the ORDAudio object type, which supports the storage and management of audio data.

The ORDAudio object type is defined in the ordaspec.sql file. After installation, this file is available in the Oracle home directory at:

<ORACLE_HOME>/ord/im/admin (on Linux and UNIX)

<ORACLE_HOME>\ord\im\admin (on Windows)

This chapter includes these sections:

3.1 ORDAudio Object Examples

The examples in this chapter use the ONLINE_MEDIA table in the Product Media (PM) sample schema. To replicate the examples on your computer, begin with the examples shown in the reference pages for the ORDAudio constructors and the import( ) and importFrom( ) methods. Then, substitute your audio files for those in the examples.

The example for the constructor ORDAudio for BLOBs uses the test audio table TAUD. (See Section 7.2.2 for the definition of this table.)

Note:

If you manipulate the audio data itself (by either directly modifying the BLOB or changing the external source), you must ensure that the object attributes stay synchronized and the update time is modified; otherwise, the object attributes will not match the audio data.

See Also:

Oracle Database Sample Schemas for more information about the PM schema

3.1.1 Directory Definition for ORDAudio Object Examples

Issue the following statements before executing the examples, where c:\mydir\work is the directory where the user ron can find the audio data:

CONNECT sys as sysdba
CREATE OR REPLACE DIRECTORY FILE_DIR as 'c:\mydir\work';
GRANT READ ON DIRECTORY FILE_DIR TO 'ron';

3.2 Important Notes for ORDAudio Methods

Methods invoked at the ORDSource level that are handed off to the source plug-in for processing have ctx (RAW) as the first argument. Before calling any of these methods for the first time, the client must allocate the ctx structure, initialize it to NULL, and invoke the openSource( ) method. At this point, the source plug-in can initialize context for this client. When processing is complete, the client must invoke the closeSource( ) method.

Methods invoked from a source plug-in call have the first argument as ctx (RAW).

Methods invoked at the ORDAudio level that are handed off to the format plug-in for processing have ctx (RAW) as the first argument. Before calling any of these methods for the first time, the client must allocate the ctx structure and initialize it to NULL.

Note:

In the current release, none of the plug-ins provided by Oracle and not all source or format plug-ins use the ctx argument, but if you code as previously described, your application should work with current or future source or format plug-ins.

Use any of the individual set methods to set the attribute value for an object for formats not natively supported; otherwise, for formats natively supported, use the setProperties( ) method to populate the attributes of the object or write a format plug-in.

ORDAudio Object Type

The ORDAudio object type supports the storage and management of audio data. The attributes for this object type are defined as follows in the ordaspec.sql file:

  -------------------
  -- TYPE ATTRIBUTES
  -------------------
  description         VARCHAR2(4000),
  source              ORDSource,
  format              VARCHAR2(31),
  mimeType            VARCHAR2(4000),
  comments            CLOB, 
  
  -- AUDIO RELATED ATTRIBUTES
  
  encoding            VARCHAR2(256),
  numberOfChannels    INTEGER,
  samplingRate        INTEGER,
  sampleSize          INTEGER,
  compressionType     VARCHAR2(4000),
  audioDuration       INTEGER,

where:

  • description: the description of the audio object.

  • source: the ORDSource where the audio data is to be found.

  • format: the format in which the audio data is stored.

  • mimeType: the MIME type information.

  • comments: the metadata information of the audio object.

  • encoding: the encoding type of the audio data.

  • numberOfChannels: the number of audio channels in the audio data.

  • samplingRate: the rate in Hz at which the audio data was recorded.

  • sampleSize: the sample width or number of samples of audio in the data.

  • compressionType: the compression type of the audio data.

  • audioDuration: the total duration of the audio data stored.

Note:

The comments attribute is populated by the setProperties( ) method when the setComments parameter is TRUE. Oracle recommends that you not write to this attribute directly.

ORDAudio Constructors

This section describes these ORDAudio constructor functions:

ORDAudio for BLOBs

Format

ORDAudio(SELF IN OUT NOCOPY ORDSYS.ORDAudio,
data IN BLOB,
setproperties IN INTEGER DEFAULT 0)
RETURN SELF AS RESULT

Description

Constructs an ORDAudio object from a BLOB. The data stored in the BLOB is copied into the ORDAudio object when the constructed ORDAudio object is inserted or updated into a table.

Parameters

data

Audio content stored in a BLOB.

setproperties

Indicator flag that determines whether the setProperties( ) method is called in the constructor. If the value is 1, the setProperties( ) method is called. If the value is 0, the method is not called. The default is 0.

Pragmas

None.

Exceptions

None.

Usage Notes

Use this constructor to create an ORDAudio object when the audio content is stored in either a temporary or a persistent BLOB.

Examples

Create an ORDAudio object from a BLOB object and insert it into the table.

Note:

The user who runs this statement must have the SELECT privilege on the table taud created by the user mediauser.

See Section 7.2.2 for the definition of the test audio table TAUD.

INSERT INTO pm.online_media (product_id, product_audio)
  SELECT 1729, ORDSYS.ORDAudio(t.aud) FROM mediauser.taud t WHERE t.n = 1;

ORDAudio for Other Sources

Format

ORDAudio( SELF IN OUT NOCOPY ORDSYS.ORDAudio,
source_type IN VARCHAR2 DEFAULT 'LOCAL',
source_location IN VARCHAR2 DEFAULT NULL,
source_name IN VARCHAR2 DEFAULT NULL,
setproperties IN INTEGER DEFAULT 0
) RETURN SELF AS RESULT

Description

Constructs an ORDAudio object from a specific source. By default, an empty object with a local source is constructed.

Parameters

source_type

The type of the source audio data. Valid values are: FILE, HTTP, LOCAL, or user-defined. The default is LOCAL.

The parameter value LOCAL indicates that the data is stored in Oracle Database. The parameter value LOCAL is never stored in the srcType attribute. Rather, this parameter value indicates that the data is stored in Oracle Database in the localData attribute. (See Section 2.2 for a description of the ORDSource object.)

source_location

The location from which the source audio data is to be imported. (See Table 2-2.)

source_name

The name of the source audio data. (See Table 2-3.)

setproperties

Indicator flag that determines whether the setProperties( ) method is called in the constructor. If the value is 1, the setProperties( ) method is called. If the value is 0, the method is not called. The default is 0.

Pragmas

None.

Exceptions

None.

Usage Notes

Use this constructor to create an ORDAudio object when the audio content is not already stored in a BLOB, as in any of these situations:


The content is in a local file.
The content is referenced by a URL.
The content is not available when the ORDAudio object is created.

Examples

Create an ORDAudio object from a specified source:

-- Construct an ORDAudio object from an external file and insert it into the table.
INSERT INTO pm.online_media (product_id, product_audio)
  VALUES (1733, ORDSYS.ORDAudio('FILE', 'FILE_DIR', 'speaker.au'));
 
-- Initialize an ORDAudio object in the table.
INSERT INTO pm.online_media (product_id, product_audio)
  VALUES(1729, ORDSYS.ORDAudio());

ORDAudio Methods

This section presents reference information about the Oracle Multimedia methods used specifically for audio data manipulation.

Chapter 2 presents reference information about the Oracle Multimedia methods that are common to ORDAudio, ORDDoc, ORDImage, and ORDVideo. Use the methods presented in both chapters to get and set attributes, and to perform metadata extractions.

This section describes these methods:

See Also:

Oracle Database Concepts for more information about object types and methods

checkProperties( )

Format

checkProperties(ctx IN OUT RAW) RETURN BOOLEAN;

Description

Checks the properties of the stored audio data, including these audio attributes: sample size, sample rate, number of channels, format, and encoding type.

Parameters

ctx

The format plug-in context information. (See Section 3.2.)

Usage Notes

If the value of the format is set to NULL, then the checkProperties( ) method uses the default format plug-in; otherwise, it uses the plug-in specified by the format.

The checkProperties( ) method does not check the MIME type because a file can have multiple correct MIME types.

Pragmas

None.

Exceptions

ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION

This exception is raised if you call the checkProperties( ) method and the audio plug-in raises an exception.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

Check property information for known audio attributes:

DECLARE
 obj ORDSYS.ORDAudio;
 ctx RAW(64) :=NULL;
BEGIN
 SELECT p.product_audio INTO obj FROM pm.online_media p 
 WHERE p.product_id  = 1729;
 IF ( obj.checkProperties(ctx) =  TRUE ) THEN 
  DBMS_OUTPUT.PUT_LINE('true');
 ELSE
  DBMS_OUTPUT.PUT_LINE('false');
 END IF;
 COMMIT;
 EXCEPTION
  WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN
   DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION caught');
  WHEN OTHERS THEN
   DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/

getAllAttributes( )

Format

getAllAttributes(ctx IN OUT RAW,

attributes IN OUT NOCOPY CLOB);

Description

Returns a formatted string for convenient client access. For natively supported formats, the string includes this list of audio data attributes separated by a comma (,): fileFormat, mimeType, encoding, numberOfChannels, samplingRate, sampleSize, compressionType, and audioDuration. For user-defined formats, the string is defined by the format plug-in.

Parameters

ctx

The format plug-in context information. (See Section 3.2.)

attributes

The attributes.

Usage Notes

Generally, these audio data attributes are available from the header of the formatted audio data.

Pragmas

None.

Exceptions

ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION

This exception is raised if you call the getAllAttributes( ) method and the audio plug-in raises an exception.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

Return all audio attributes for audio data stored in the database:

DECLARE
 obj ORDSYS.ORDAudio;
 tempLob   CLOB;
 ctx RAW(64) :=NULL;
BEGIN
 SELECT p.product_audio INTO obj FROM pm.online_media p 
  WHERE p.product_id  = 1729;
 DBMS_OUTPUT.PUT_LINE('getting comma separated list of all attributes');
 DBMS_OUTPUT.PUT_LINE('-------------------------------------------');
 DBMS_LOB.CREATETEMPORARY(tempLob, FALSE, DBMS_LOB.CALL);
 obj.getAllAttributes(ctx,tempLob);
 DBMS_OUTPUT.PUT_LINE(DBMS_LOB.substr(tempLob, DBMS_LOB.getLength(tempLob),1));
 COMMIT;
 EXCEPTION
  WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN
   DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION caught');
END;
/

getAttribute( )

Format

getAttribute(ctx IN OUT RAW,

name IN VARCHAR2)

RETURN VARCHAR2;

Description

Returns the value of the requested attribute from audio data for user-defined formats only.

Parameters

ctx

The format plug-in context information. (See Section 3.2.)

name

The name of the attribute.

Usage Notes

Generally, the audio data attributes are available from the header of the formatted audio data.

Audio data attribute information can be extracted from the audio data itself. You can extend support to a format not understood by the ORDAudio object by implementing an ORDPLUGINS.ORDX_<format>_AUDIO package that supports that format.

See Also:

Oracle Multimedia User's Guide for more information about extending support for media formats

Pragmas

None.

Exceptions

ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION

This exception is raised if you call the getAttribute( ) method and the audio plug-in raises an exception.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

Return information for the specified audio attribute for audio data stored in the database. (Because this example uses a supported data format, rather than a user-written plug-in, an exception is raised.)

DECLARE
 obj ORDSYS.ORDAudio;
 res VARCHAR2(4000);
 ctx RAW(64) :=NULL;
BEGIN
 SELECT p.product_audio INTO obj FROM pm.online_media p 
  WHERE p.product_id  = 1733;
 DBMS_OUTPUT.PUT_LINE('getting audio sample size');
 DBMS_OUTPUT.PUT_LINE('---------------------');
 res := obj.getAttribute(ctx,'sample_size');
 COMMIT;
 EXCEPTION
  WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN
   DBMS_OUTPUT.PUT_LINE('AUDIO PLUGIN EXCEPTION caught');
  WHEN OTHERS THEN
   DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/

getAudioDuration( )

Format

getAudioDuration( ) RETURN INTEGER;

Description

Returns the value of the audioDuration attribute of the audio object.

Parameters

None.

Usage Notes

None.

Pragmas

PRAGMA RESTRICT_REFERENCES(getAudioDuration, WNDS,
WNPS, RNDS, RNPS)

Exceptions

None.

Examples

See the example in setKnownAttributes( ).

getCompressionType( )

Format

getCompressionType( ) RETURN VARCHAR2;

Description

Returns the value of the compressionType attribute of the audio object.

Parameters

None.

Usage Notes

None.

Pragmas

PRAGMA RESTRICT_REFERENCES(getCompressionType, WNDS,
WNPS, RNDS, RNPS)

Exceptions

None.

Examples

See the example in setKnownAttributes( ).

getContentLength( )

Format

getContentLength(ctx IN OUT RAW) RETURN INTEGER;

Description

Returns the length of the audio data content stored in the source.

Parameters

ctx

The source plug-in context information. (See Section 3.2.)

Usage Notes

None.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

This exception is raised if you call the getContentLength( ) method and the value of the source.srcType attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

See the example in import( ).

getContentInLob( )

Format

getContentInLob(ctx IN OUT RAW,

dest_lob IN OUT NOCOPY BLOB,

mimeType OUT VARCHAR2,

format OUT VARCHAR2);

Description

Copies data from a data source into the specified BLOB. The BLOB must not be the BLOB in the source.localData attribute (of the embedded ORDSource object).

Parameters

ctx

The source plug-in context information. (See Section 3.2.)

dest_lob

The LOB in which to receive data.

mimeType

The MIME type of the data; this may or may not be returned.

format

The format of the data; this may or may not be returned.

Usage Notes

None.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

ORDSourceExceptions.METHOD_NOT_SUPPORTED

This exception is raised if you call the getContentInLob( ) method and this method is not supported by the source plug-in being used.

See Appendix G for more information about these exceptions.

Examples

Get data from a data source and put it into the specified BLOB:

DECLARE
 obj ORDSYS.ORDAudio;
 tempBLob BLOB;
 mimeType VARCHAR2(4000);
 format VARCHAR2(31);
 ctx RAW(64) :=NULL;
BEGIN
 SELECT p.product_audio INTO obj FROM pm.online_media p 
  WHERE p.product_id  = 1733;
 IF (obj.isLocal) THEN
  DBMS_OUTPUT.PUT_LINE('local is true');
 END IF;
 DBMS_LOB.CREATETEMPORARY(tempBLob, true, 10);
 obj.getContentInLob(ctx,tempBLob, mimeType,format);
 DBMS_OUTPUT.PUT_LINE('Length is ' || TO_CHAR(DBMS_LOB.getLength(tempBLob)));
 COMMIT;
 EXCEPTION
  WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN
   DBMS_OUTPUT.PUT_LINE('ORDSourceExceptions.METHOD_NOT_SUPPORTED caught');
  WHEN OTHERS THEN
   DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
 END;
/

getDescription( )

Format

getDescription( ) RETURN VARCHAR2;

Description

Returns the description of the audio data.

Parameters

None.

Usage Notes

None.

Pragmas

PRAGMA RESTRICT_REFERENCES(getDescription, WNDS, WNPS, RNDS, RNPS)

Exceptions

ORDAudioExceptions.DESCRIPTION_IS_NOT_SET

This exception is raised if you call the getDescription( ) method and the description is not set.

See Appendix G for more information about this exception.

Examples

Get the description attribute for some audio data:

DECLARE
  obj ORDSYS.ORDAudio;
BEGIN
-- This example assumes that the setDescription method has already been applied.
  SELECT p.product_audio INTO obj FROM pm.online_media p 
    WHERE p.product_id  = 1733 FOR UPDATE;
  DBMS_OUTPUT.PUT_LINE('Current description is:');
  DBMS_OUTPUT.PUT_LINE('-------------');
  DBMS_OUTPUT.PUT_LINE(obj.getDescription());
  COMMIT;
END;
/  

getEncoding( )

Format

getEncoding( ) RETURN VARCHAR2;

Description

Returns the value of the encoding attribute of the audio object.

Parameters

None.

Usage Notes

None.

Pragmas

PRAGMA RESTRICT_REFERENCES(getEncoding, WNDS, WNPS, RNDS, RNPS)

Exceptions

None.

Examples

See the example in setProperties( ).

getFormat( )

Format

getFormat( ) RETURN VARCHAR2;

Description

Returns the value of the format attribute of the audio object.

Parameters

None.

Usage Notes

None.

Pragmas

PRAGMA RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS)

Exceptions

ORDAudioExceptions.AUDIO_FORMAT_IS_NULL

This exception is raised if you call the getFormat( ) method and the value of the format attribute is NULL.

See Appendix G for more information about this exception.

Examples

See the example in setProperties( ).

getNumberOfChannels( )

Format

getNumberOfChannels( ) RETURN INTEGER;

Description

Returns the value of the numberOfChannels attribute of the audio object.

Parameters

None.

Usage Notes

None.

Pragmas

PRAGMA RESTRICT_REFERENCES(getNumberOfChannels, WNDS,
WNPS, RNDS, RNPS)

Exceptions

None.

Examples

See the example in setProperties( ).

getSampleSize( )

Format

getSampleSize( ) RETURN INTEGER;

Description

Returns the value of the sampleSize attribute of the audio object.

Parameters

None.

Usage Notes

None.

Pragmas

PRAGMA RESTRICT_REFERENCES(getSampleSize, WNDS, WNPS, RNDS, RNPS)

Exceptions

None.

Examples

See the example in setProperties( ).

getSamplingRate( )

Format

getSamplingRate( ) IN INTEGER;

Description

Returns the value of the samplingRate attribute of the audio object. The unit is Hz.

Parameters

None.

Usage Notes

None.

Pragmas

PRAGMA RESTRICT_REFERENCES(getSamplingRate, WNDS,
WNPS, RNDS, RNPS)

Exceptions

None.

Examples

See the example in setProperties( ).

import( )

Format

import(ctx IN OUT RAW);

Description

Transfers audio data from an external audio data source to the source.localData attribute (of the embedded ORDSource object) within the database.

Parameters

ctx

The source plug-in context information. This parameter must be allocated and initialized to NULL. If you are using a user-defined source plug-in, call the openSource( ) method. (See Section 3.2.)

Usage Notes

Use the setSource( ) method to set the source.srcType, source.srcLocation, and source.srcName attributes (of the embedded ORDSource object) for the external source before calling the import( ) method.

After importing data from an external audio data source to a local source (within Oracle Database), the source information remains unchanged (that is, pointing to the source from where the data was imported).

Invoking this method implicitly calls the setUpdateTime( ) and setLocal( ) methods.

If the value of the source.srcType attribute is FILE, the source.srcLocation attribute contains the name of a database directory object that contains the file to be imported, and the source.srcName attribute contains the name of the file to be imported. You must ensure that the directory for the external source location exists or is created before you use this method.

The import( ) method reads only from a database directory object that the user has privilege to access. That is, you can access a directory object that you have created using the SQL statement CREATE DIRECTORY, or one to which you have been granted READ access.

For example, the following SQL*Plus commands create a directory object and grant the user ron permission to read any file within the directory c:\mydir\work:

CONNECT sys as sysdba
Enter password: password
CREATE OR REPLACE DIRECTORY FILE_DIR AS 'c:\mydir\work';
GRANT READ ON DIRECTORY FILE_DIR TO ron;

See Section 3.1 for more information about directory and table definitions.

If the value of the source.srcType attribute is HTTP, the source.srcLocation attribute contains the base URL needed to find the directory that contains the object to be imported, and the source.srcName attribute contains the name of the object to be imported.

This method uses the PL/SQL UTL_HTTP package to import media data from an HTTP data source. You can use environment variables to specify the proxy behavior of the UTL_HTTP package. For example, on Linux and UNIX, setting the environment variable http_proxy to a URL specifies that the UTL_HTTP package must use that URL as the proxy server for HTTP requests. Setting the no_proxy environment variable to a domain name specifies that the HTTP proxy server not be used for URLs in the specified domain.

See Also:

Oracle Database PL/SQL Packages and Types Reference for more information about the UTL_HTTP package

If the value of the source.srcType attribute is a user-defined name, the source.srcLocation attribute contains an identifier string required to access the user-defined object to be imported, and the source.srcName attribute contains the name of the object to be imported.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

This exception is raised if you call the import( ) method and the value of the source.srcType attribute is NULL.

ORDSourceExceptions.METHOD_NOT_SUPPORTED

This exception is raised if you call the import( ) method and the import( ) method is not supported by the source plug-in being used.

ORDSourceExceptions.NULL_SOURCE

This exception is raised if you call the import( ) method and the value of the source.localData attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

Import audio data from an external audio data source into the local source:

DECLARE
  obj ORDSYS.ORDAudio;
  ctx RAW(64) := NULL;
BEGIN
   SELECT p.product_audio INTO obj FROM pm.online_media p 
     WHERE p.product_id  = 1733 FOR UPDATE;
  DBMS_OUTPUT.PUT_LINE('getting source');
  DBMS_OUTPUT.PUT_LINE('--------------------------');
  -- get source information
  DBMS_OUTPUT.PUT_LINE(obj.getSource());
  -- import data
  obj.import(ctx);
  -- check size
  DBMS_OUTPUT.PUT_LINE('Length is ' || TO_CHAR(obj.getContentLength(ctx)));
  UPDATE pm.online_media p SET p.product_audio = obj WHERE p.product_id = 1733;
  COMMIT;
END;
/

importFrom( )

Format

importFrom(ctx IN OUT RAW,

source_type IN VARCHAR2,

source_location IN VARCHAR2,

source_name IN VARCHAR2);

Description

Transfers audio data from the specified external audio data source to the source.localData attribute (of the embedded ORDSource object) within the database.

Parameters

ctx

The source plug-in context information. This parameter must be allocated and initialized to NULL. If you are using a user-defined source plug-in, call the openSource( ) method. (See Section 3.2.)

source_type

The type of the source audio data. (See Table 2-1.)

source_location

The location from which the source audio data is to be imported. (See Table 2-2.)

source_name

The name of the source audio data. (See Table 2-3.)

Usage Notes

This method is similar to the import( ) method except the source information is specified as parameters to the method instead of separately.

After importing data from an external audio data source to a local source (within Oracle Database), the source information (that is, pointing to the source from where the data was imported) is set to the input values.

Invoking this method implicitly calls the setUpdateTime( ) and setLocal( ) methods.

If the value of the source_type parameter is FILE, the source_location parameter contains the name of a database directory object that contains the file to be imported, and the source_name parameter contains the name of the file to be imported. You must ensure that the directory indicated by the source_location parameter exists or is created before you use this method.

The importFrom( ) method reads only from a database directory object that the user has privilege to access. That is, you can access a directory object that you have created using the SQL statement CREATE DIRECTORY, or one to which you have been granted READ access.

For example, the following SQL*Plus commands create a directory object and grant the user ron permission to read any file within the directory c:\mydir\work:

CONNECT sys as sysdba
Enter password: password
CREATE OR REPLACE DIRECTORY FILE_DIR AS 'c:\mydir\work';
GRANT READ ON DIRECTORY FILE_DIR TO ron;

See Section 3.1 for more information about directory and table definitions.

If the value of the source_type parameter is HTTP, the source_location parameter contains the base URL needed to find the directory that contains the object to be imported, and the source_name parameter contains the name of the object to be imported.

This method uses the PL/SQL UTL_HTTP package to import media data from an HTTP data source. You can use environment variables to specify the proxy behavior of the UTL_HTTP package. For example, on Linux and UNIX, setting the environment variable http_proxy to a URL specifies that the UTL_HTTP package must use that URL as the proxy server for HTTP requests. Setting the no_proxy environment variable to a domain name specifies that the HTTP proxy server not be used for URLs in the specified domain.

See Also:

Oracle Database PL/SQL Packages and Types Reference for more information about the UTL_HTTP package

If the value of the source_type parameter is a user-defined name, the source_location parameter contains an identifier string required to access the user-defined object to be imported, and the source_name parameter contains the name of the object to be imported.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

ORDSourceExceptions.METHOD_NOT_SUPPORTED

This exception is raised if you call the importFrom( ) method and this method is not supported by the source plug-in being used.

ORDSourceExceptions.NULL_SOURCE

This exception is raised if you call the importFrom( ) method and the value of the source.localData attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

Import audio data from the specified external data source into the local source:

DECLARE
 obj ORDSYS.ORDAudio;
 ctx RAW(64) :=NULL;
BEGIN
 SELECT p.product_audio INTO obj FROM pm.online_media p 
  WHERE p.product_id  = 1729 FOR UPDATE;
 DBMS_OUTPUT.PUT_LINE('setting and getting source');
 DBMS_OUTPUT.PUT_LINE('--------------------------');
 -- set source to a file
 -- import data
 obj.importFrom(ctx,'file','FILE_DIR','birds.wav');
 -- check size
 DBMS_OUTPUT.PUT_LINE('Length is ' || TO_CHAR(obj.getContentLength(ctx)));
 DBMS_OUTPUT.PUT_LINE(obj.getSource());
 UPDATE pm.online_media p SET p.product_audio = obj WHERE p.product_id = 1729;
 COMMIT;
 EXCEPTION
  WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN
   DBMS_OUTPUT.PUT_LINE('Source not specified');
 END;
/

processAudioCommand( )

Format

processAudioCommand(ctx IN OUT RAW,

cmd IN VARCHAR2,

arguments IN VARCHAR2,

result OUT RAW)

RETURN RAW;

Description

Lets you send a command and related arguments to the format plug-in for processing.

Note:

This method is supported only for user-defined format plug-ins.

Parameters

ctx

The format plug-in context information. (See Section 3.2.)

cmd

Any command recognized by the format plug-in.

arguments

The arguments of the command.

result

The result of calling this method returned by the format plug-in.

Usage Notes

Use this method to send any audio commands and their respective arguments to the format plug-in. Commands are not interpreted; they are taken and passed through to a format plug-in to be processed.

To use your user-defined format plug-in, you must set the format attribute to a user-defined format for which you have implemented a plug-in that supports the processAudioCommand( ).

You can extend support to a format that is not understood by the ORDAudio object by preparing an ORDPLUGINS.ORDX_<format>_AUDIO package that supports that format.

See Also:

Oracle Multimedia User's Guide for more information about extending support for media formats

Pragmas

None.

Exceptions

ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION

This exception is raised if you call the processAudioCommand( ) method and the audio plug-in raises an exception.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

None.

setAudioDuration( )

Format

setAudioDuration(knownAudioDuration IN INTEGER);

Description

Sets the value of the audioDuration attribute of the audio object.

Parameters

knownAudioDuration

A known audio duration.

Usage Notes

Calling this method implicitly calls the setUpdateTime( ) method.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_INPUT_VALUE

This exception is raised if you call the setAudioDuration( ) method and the value of the knownAudioDuration parameter is NULL.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

See the example in setFormat( ).

setCompressionType( )

Format

setCompressionType(knownCompressionType IN VARCHAR2);

Description

Sets the value of the compressionType attribute of the audio object.

Parameters

knownCompressionType

A known compression type.

Usage Notes

The value of the compressionType always matches that of the encoding value because in many audio formats, encoding and compression type are tightly integrated. See Appendix A for more information.

Calling this method implicitly calls the setUpdateTime( ) method.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_INPUT_VALUE

This exception is raised if you call the setCompressionType( ) method and the value of the knownCompressionType parameter is NULL.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

See the example in setFormat( ).

setDescription( )

Format

setDescription (user_description IN VARCHAR2);

Description

Sets the description of the audio data.

Parameters

user_description

The description of the audio data.

Usage Notes

Each audio object may need a description to help some client applications. For example, a Web-based client can show a list of audio descriptions from which a user can select one to access the audio data.

Web-access components and other client components provided with Oracle Multimedia make use of this description attribute to present audio data to users.

Calling this method implicitly calls the setUpdateTime( ) method.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about this exception.

Examples

Set the description attribute for some audio data:

DECLARE
  obj ORDSYS.ORDAudio;
BEGIN
  SELECT p.product_audio INTO obj FROM pm.online_media p 
    WHERE p.product_id  = 1733 FOR UPDATE;
  DBMS_OUTPUT.PUT_LINE('writing new title');
  DBMS_OUTPUT.PUT_LINE('-------------');
  obj.setDescription('This is audio for product 1733');
  DBMS_OUTPUT.PUT_LINE(obj.getDescription());
  UPDATE pm.online_media p SET p.product_audio = obj WHERE p.product_id = 1733;
  COMMIT;
END;
/

setEncoding( )

Format

setEncoding(knownEncoding IN VARCHAR2);

Description

Sets the value of the encoding attribute of the audio object.

Parameters

knownEncoding

A known encoding type.

Usage Notes

The value of encoding always matches that of the compressionType value because in many audio formats, encoding and compression type are tightly integrated. See Appendix A for more information.

Calling this method implicitly calls the setUpdateTime( ) method.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_INPUT_VALUE

This exception is raised if you call the setEncoding( ) method and the value of the knownEncoding parameter is NULL.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

See the example in setFormat( ).

setFormat( )

Format

setFormat(knownFormat IN VARCHAR2);

Description

Sets the format attribute of the audio object.

Parameters

knownFormat

The known format of the audio data to be set in the audio object.

Usage Notes

Calling this method implicitly calls the setUpdateTime( ) method.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_INPUT_VALUE

This exception is raised if you call the setFormat( ) method and the value of the knownFormat parameter is NULL.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

Set the format (and other attributes) for some audio data:

DECLARE
 obj ORDSYS.ORDAudio;
BEGIN
 SELECT p.product_audio INTO obj FROM pm.online_media p 
  WHERE p.product_id  = 1733 FOR UPDATE;
 obj.setFormat('AUFF');
 obj.setEncoding('MULAW');
 obj.setNumberOfChannels(1);
 obj.setSamplingRate(8);
 obj.setSampleSize(8);
 obj.setCompressionType('8BITMONOAUDIO');
 obj.setAudioDuration(16);
 DBMS_OUTPUT.PUT_LINE('format: ' || obj.getFormat());
 DBMS_OUTPUT.PUT_LINE('encoding: ' || obj.getEncoding());
 DBMS_OUTPUT.PUT_LINE(
                      'numberOfChannels: ' || TO_CHAR(obj.getNumberOfChannels()));
 DBMS_OUTPUT.PUT_LINE('samplingRate: ' || TO_CHAR(obj.getSamplingRate()));
 DBMS_OUTPUT.PUT_LINE('sampleSize: ' || TO_CHAR(obj.getSampleSize()));
 DBMS_OUTPUT.PUT_LINE('compressionType : ' || obj.getCompressionType());
 DBMS_OUTPUT.PUT_LINE('audioDuration: ' || TO_CHAR(obj.getAudioDuration()));
 COMMIT;
 EXCEPTION
  WHEN ORDSYS.ORDAudioExceptions.NULL_INPUT_VALUE THEN
   DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.NULL_INPUT_VALUE caught');
  WHEN OTHERS THEN
   DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/ 

setKnownAttributes( )

Format

setKnownAttributes(knownFormat IN VARCHAR2,

knownEncoding IN VARCHAR2,

knownNumberOfChannels IN INTEGER,

knownSamplingRate IN INTEGER,

knownSampleSize IN INTEGER,

knownCompressionType IN VARCHAR2,

knownAudioDuration IN INTEGER);

Description

Sets the known audio attributes for the audio object.

Parameters

knownFormat

The known format.

knownEncoding

The known encoding type.

knownNumberOfChannels

The known number of channels.

knownSamplingRate

The known sampling rate.

knownSampleSize

The known sample size.

knownCompressionType

The known compression type.

knownAudioDuration

The known audio duration.

Usage Notes

Calling this method implicitly calls the setUpdateTime( ) method.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about this exception.

Examples

Set the known attributes for the audio data:

DECLARE
 obj ORDSYS.ORDAudio;
BEGIN
 SELECT p.product_audio INTO obj FROM pm.online_media p 
  WHERE p.product_id  = 1733 FOR UPDATE;
 obj.setKnownAttributes('AUFF','MULAW', 1, 8, 8, '8BITMONOAUDIO',16);
 DBMS_OUTPUT.PUT_LINE('format: ' || obj.getFormat());
 DBMS_OUTPUT.PUT_LINE('encoding: ' || obj.getEncoding());
 DBMS_OUTPUT.PUT_LINE(
                   'numberOfChannels: ' || TO_CHAR(obj.getNumberOfChannels()));
 DBMS_OUTPUT.PUT_LINE('samplingRate: ' || TO_CHAR(obj.getSamplingRate()));
 DBMS_OUTPUT.PUT_LINE('sampleSize: ' || TO_CHAR(obj.getSampleSize()));
 DBMS_OUTPUT.PUT_LINE('compressionType : ' || obj.getCompressionType());
 DBMS_OUTPUT.PUT_LINE('audioDuration: ' || TO_CHAR(obj.getAudioDuration()));
 UPDATE pm.online_media p SET p.product_audio = obj 
   WHERE  p.product_id = 1733;
 COMMIT;
 EXCEPTION
  WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN
   DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.METHOD_NOT_SUPPORTED caught');
  WHEN OTHERS THEN
   DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/

setNumberOfChannels( )

Format

setNumberOfChannels(knownNumberOfChannels IN INTEGER);

Description

Sets the value of the numberOfChannels attribute for the audio object.

Parameters

knownNumberOfChannels

A known number of channels.

Usage Notes

Calling this method implicitly calls the setUpdateTime( ) method.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_INPUT_VALUE

This exception is raised if you call the setNumberOfChannels( ) method and the value of the knownNumberOfChannels parameter is NULL.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

See the example in setFormat( ).

setProperties( )

Format

setProperties(ctx IN OUT RAW,

setComments IN BOOLEAN);

Description

Reads the audio data to get the values of the object attributes and then stores them in the object attributes. This method sets the properties for each of these attributes of the audio data for which values are available: compression type, duration, encoding type, format, mime type, number of channels, sampling rate, and sample size. It populates the comments field of the object with a rich set of format and application properties in XML form if the value of the setComments parameter is TRUE.

Parameters

ctx

The format plug-in context information. (See Section 3.2.)

setComments

A Boolean value that indicates whether the comments field of the object is populated. If the value is TRUE, then the comments field of the object is populated with a rich set of format and application properties of the audio object in XML form; otherwise, if the value is FALSE, the comments field of the object remains unpopulated. The default value is FALSE.

Usage Notes

If the property cannot be extracted from the media source, then the respective attribute is set to the NULL value.

If the format attribute is set to the NULL value before calling this method, then the setProperties( ) method uses the default format plug-in; otherwise, it uses the plug-in specified by the format.

Pragmas

None.

Exceptions

ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION

This exception is raised if you call the setProperties( ) method and the audio plug-in raises an exception.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Example

Set the property information for known audio attributes:

DECLARE
 obj ORDSYS.ORDAudio;
 ctx RAW(64) :=NULL;
BEGIN
 SELECT p.product_audio INTO obj FROM pm.online_media p 
  WHERE p.product_id = 1729 FOR UPDATE;
 obj.setProperties(ctx,FALSE);
 DBMS_OUTPUT.PUT_LINE('format: ' || obj.getformat);
 DBMS_OUTPUT.PUT_LINE('encoding: ' || obj.getEncoding);
 DBMS_OUTPUT.PUT_LINE(
                 'numberOfChannels: ' || TO_CHAR(obj.getNumberOfChannels));
 DBMS_OUTPUT.PUT_LINE('samplingRate: ' || TO_CHAR(obj.getSamplingRate));
 DBMS_OUTPUT.PUT_LINE('sampleSize: ' || TO_CHAR(obj.getSampleSize));
 UPDATE  pm.online_media p set p.product_audio = obj 
   WHERE  p.product_id = 1729;
 COMMIT;
 EXCEPTION
  WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN
   DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.METHOD_NOT_SUPPORTED caught');
  WHEN OTHERS THEN
   DBMS_OUTPUT.PUT_LINE('EXCEPTION caught');
END;
/

setSamplingRate( )

Format

setSamplingRate(knownSamplingRate IN INTEGER);

Description

Sets the value of the samplingRate attribute of the audio object. The unit is Hz.

Parameters

knownSamplingRate

A known sampling rate.

Usage Notes

Calling this method implicitly calls the setUpdateTime( ) method.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_INPUT_VALUE

This exception is raised if you call the setSamplingRate( ) method and the value of the knownSamplingRate parameter is NULL.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

See the example in setFormat( ).

setSampleSize( )

Format

setSampleSize(knownSampleSize IN INTEGER);

Description

Sets the value of the sampleSize attribute of the audio object.

Parameters

knownSampleSize

A known sample size.

Usage Notes

Calling this method implicitly calls the setUpdateTime( ) method.

Pragmas

None.

Exceptions

ORDAudioExceptions.NULL_INPUT_VALUE

This exception is raised if you call the setSampleSize( ) method and the value of the knownSampleSize parameter is NULL.

ORDAudioExceptions.NULL_SOURCE

This exception is raised when the value of the ORDAudio.source attribute is NULL.

See Appendix G for more information about these exceptions.

Examples

See the example in setFormat( ).