Oracle8i interMedia Audio, Image, and Video User's Guide and Reference Release 8.1.5 A67299-01 |
|
Oracle8i interMedia contains information about the ORDAudio type:
The examples in this chapter assume that the test audio table TAUD has been created and filled with data. This table was created using the SQL statements described in Section 3.2.1.
Methods invoked at the ORDSource level that are handed off to the source plug-in for processing have ctx (RAW(4000)) 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 should invoke the closeSource( ) method.
Methods invoked from a source plug-in call have the first argument as ctx (RAW(4000)).
Methods invoked at the ORDAudio level that are handed off to the format plug-in for processing have ctx (RAW(4000)) 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.
Oracle8i interMedia describes the ORDAudio object type, which supports the storage and management of audio data.
The ORDAudio object type supports the storage and management of audio data. This object type is defined as follows:
CREATE OR REPLACE TYPE ORDAudio AS OBJECT ( -- 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, -- METHODS -- Methods associated with the date attribute MEMBER FUNCTION getUpdateTime RETURN DATE, PRAGMA RESTRICT_REFERENCES(getUpdateTime, WNDS, WNPS, RNDS, RNPS), MEMBER PROCEDURE setUpdateTime(current_time DATE), -- Methods associated with the description attribute MEMBER PROCEDURE setDescription(user_description IN VARCHAR2), MEMBER FUNCTION getDescription RETURN VARCHAR2, PRAGMA RESTRICT_REFERENCES(getDescription, WNDS, WNPS, RNDS, RNPS), -- Methods associated with the mimeType attribute MEMBER PROCEDURE setMimeType(mime IN VARCHAR2), MEMBER FUNCTION getMimeType RETURN VARCHAR2, PRAGMA RESTRICT_REFERENCES(getMimeType, WNDS, WNPS, RNDS, RNPS), -- Methods associated with the source attribute MEMBER FUNCTION processSourceCommand( ctx IN OUT RAW, cmd IN VARCHAR2, arguments IN VARCHAR2, result OUT RAW) RETURN RAW, MEMBER FUNCTION isLocal RETURN BOOLEAN, PRAGMA RESTRICT_REFERENCES(isLocal, WNDS, WNPS, RNDS, RNPS), MEMBER PROCEDURE setLocal, MEMBER PROCEDURE clearLocal, MEMBER PROCEDURE setSource( source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2), MEMBER FUNCTION getSource RETURN VARCHAR2, PRAGMA RESTRICT_REFERENCES(getSource, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getSourceType RETURN VARCHAR2, PRAGMA RESTRICT_REFERENCES(getSourceType, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getSourceLocation RETURN VARCHAR2, PRAGMA RESTRICT_REFERENCES(getSourceLocation, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getSourceName RETURN VARCHAR2, PRAGMA RESTRICT_REFERENCES(getSourceName, WNDS, WNPS, RNDS, RNPS), MEMBER PROCEDURE import(ctx IN OUT RAW), MEMBER PROCEDURE importFrom( ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2), MEMBER PROCEDURE export( ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2), MEMBER FUNCTION getContentLength(ctx IN OUT RAW) RETURN INTEGER, PRAGMA RESTRICT_REFERENCES(getContentLength, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getContentInLob( ctx IN OUT RAW, dest_lob IN OUT NOCOPY BLOB, mimeType OUT VARCHAR2, format OUT VARCHAR2), MEMBER FUNCTION getContent RETURN BLOB, PRAGMA RESTRICT_REFERENCES(getContent, WNDS, WNPS, RNDS, RNPS), MEMBER PROCEDURE deleteContent, -- Methods associated with file operations on the source MEMBER FUNCTION openSource(userArg IN RAW, ctx OUT RAW) RETURN INTEGER, MEMBER FUNCTION closeSource(ctx IN OUT RAW) RETURN INTEGER, MEMBER FUNCTION trimSource(ctx IN OUT RAW, newlen IN INTEGER) RETURN INTEGER, MEMBER PROCEDURE readFromSource( ctx IN OUT RAW, startPos IN INTEGER, numBytes IN OUT INTEGER, buffer OUT RAW), MEMBER PROCEDURE writeToSource( ctx IN OUT RAW, startPos IN INTEGER, numBytes IN OUT INTEGER, buffer IN RAW), -- Methods associated with the comments attribute MEMBER PROCEDURE appendToComments(amount IN BINARY_INTEGER, buffer IN VARCHAR2), MEMBER PROCEDURE writeToComments(offset IN INTEGER, amount IN BINARY_INTEGER, buffer IN VARCHAR2), MEMBER FUNCTION readFromComments(offset IN INTEGER, amount IN BINARY_INTEGER := 32767) RETURN VARCHAR2, PRAGMA RESTRICT_REFERENCES(readFromComments, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION locateInComments(pattern IN VARCHAR2, offset IN INTEGER := 1, occurrence IN INTEGER := 1) RETURN INTEGER, MEMBER PROCEDURE trimComments(newlen IN INTEGER), MEMBER PROCEDURE eraseFromComments(amount IN OUT NOCOPY INTEGER, offset IN INTEGER := 1), MEMBER PROCEDURE deleteComments, MEMBER PROCEDURE loadCommentsFromFile(fileobj IN BFILE, amount IN INTEGER, from_loc IN INTEGER := 1, to_loc IN INTEGER := 1), MEMBER PROCEDURE copyCommentsOut(dest IN OUT NOCOPY CLOB, amount IN INTEGER, from_loc IN INTEGER := 1, to_loc IN INTEGER := 1), MEMBER FUNCTION compareComments( compare_with_lob IN CLOB, amount IN INTEGER := 4294967295, starting_pos_in_comment IN INTEGER := 1, starting_pos_in_compare IN INTEGER := 1) RETURN INTEGER, PRAGMA RESTRICT_REFERENCES(compareComments, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getCommentLength RETURN INTEGER, PRAGMA RESTRICT_REFERENCES(getCommentLength, WNDS, WNPS, RNDS, RNPS), -- Methods associated with audio attributes accessors MEMBER PROCEDURE setFormat(knownformat IN VARCHAR2), MEMBER FUNCTION getFormat RETURN VARCHAR2, PRAGMA RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getFormat(ctx IN OUT RAW) RETURN VARCHAR2, MEMBER PROCEDURE setEncoding(knownEncoding IN VARCHAR2), MEMBER FUNCTION getEncoding RETURN VARCHAR2, PRAGMA RESTRICT_REFERENCES(getEncoding, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getEncoding(ctx IN OUT RAW) RETURN VARCHAR2, MEMBER PROCEDURE setNumberOfChannels(knownNumberOfChannels IN INTEGER), MEMBER FUNCTION getNumberOfChannels RETURN INTEGER, PRAGMA RESTRICT_REFERENCES(getNumberOfChannels, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getNumberOfChannels(ctx IN OUT RAW) RETURN INTEGER, MEMBER PROCEDURE setSamplingRate(knownSamplingRate IN INTEGER), MEMBER FUNCTION getSamplingRate RETURN INTEGER, PRAGMA RESTRICT_REFERENCES(getSamplingRate, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getSamplingRate(ctx IN OUT RAW) RETURN INTEGER, MEMBER PROCEDURE setSampleSize(knownSampleSize IN INTEGER), MEMBER FUNCTION getSampleSize RETURN INTEGER, PRAGMA RESTRICT_REFERENCES(getSampleSize, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getSampleSize(ctx IN OUT RAW) RETURN INTEGER, MEMBER PROCEDURE setCompressionType(knownCompressionType IN VARCHAR2), MEMBER FUNCTION getCompressionType RETURN VARCHAR2, PRAGMA RESTRICT_REFERENCES(getCompressionType, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getCompressionType(ctx IN OUT RAW) RETURN VARCHAR2, MEMBER PROCEDURE setAudioDuration(knownAudioDuration IN INTEGER), MEMBER FUNCTION getAudioDuration RETURN INTEGER, PRAGMA RESTRICT_REFERENCES(getAudioDuration, WNDS, WNPS, RNDS, RNPS), MEMBER FUNCTION getAudioDuration(ctx IN OUT RAW) RETURN INTEGER, MEMBER PROCEDURE setKnownAttributes( knownFormat IN VARCHAR2, knownEncoding IN VARCHAR2, knownNumberOfChannels IN INTEGER, knownSamplingRate IN INTEGER, knownSampleSize IN INTEGER, knownCompressionType IN VARCHAR2, knownAudioDuration IN INTEGER), -- Methods associated with setting all the properties MEMBER PROCEDURE setProperties(ctx IN OUT RAW), MEMBER FUNCTION checkProperties(ctx IN OUT RAW) RETURN BOOLEAN, MEMBER FUNCTION getAttribute( ctx IN OUT RAW, name IN VARCHAR2) RETURN VARCHAR2, MEMBER PROCEDURE getAllAttributes( ctx IN OUT RAW, attributes IN OUT NOCOPY CLOB), -- Methods associated with audio processing MEMBER FUNCTION processAudioCommand( ctx IN OUT RAW, cmd IN VARCHAR2, arguments IN VARCHAR2, result OUT RAW) RETURN RAW );
where:
This section presents reference information on the Oracle8i interMedia methods used for audio data manipulation. These methods are described in the following groupings:
Note: Sources natively supported by interMedia are not writable and therefore do not support the export method. User-defined sources may support the export method. |
For more information on object types and methods, see the Oracle8i Concepts manual.
The methods described in this reference chapter show examples based on a test audio table TAUD. Refer to the TAUD table definition that follows when reading through the examples in Section 3.2.2 through Section 3.2.9:
CREATE TABLE TAUD(n NUMBER, aud ORDSYS.ORDAUDIO) storage (initial 100K next 100K pctincrease 0); INSERT INTO TAUD VALUES(1, ORDSYS.ORDAudio( NULL, ORDSYS.ORDSOURCE(EMPTY_BLOB(), NULL, NULL, NULL, SYSDATE, NULL), NULL, NULL, EMPTY_CLOB(), NULL, 0, 0, 0, NULL, 0) ); INSERT INTO TAUD VALUES(2, ORDSYS.ORDAudio( NULL, ORDSYS.ORDSOURCE(EMPTY_BLOB(), NULL, NULL, NULL, SYSDATE, NULL), NULL, NULL, EMPTY_CLOB(), NULL, 0, 0, 0, NULL, 0) );CREATE TABLE TS(n NUMBER, s ORDSYS.ORDSOURCE); INSERT INTO TS VALUES(1, ORDSYS.ORDSOURCE(EMPTY_BLOB(), NULL, NULL, NULL, SYSDATE, NULL)); INSERT INTO TS VALUES(2, ORDSYS.ORDSOURCE(EMPTY_BLOB(), NULL, NULL, NULL, SYSDATE, NULL)); INSERT INTO TS VALUES(3, ORDSYS.ORDSOURCE(EMPTY_BLOB(), NULL, NULL, NULL, SYSDATE, NULL)); INSERT INTO TS VALUES(4, ORDSYS.ORDSOURCE(EMPTY_BLOB(), NULL, NULL, NULL, SYSDATE, NULL));
This section presents reference information on the ORDAudio methods associated with the updateTime attribute.
getUpdateTime RETURN DATE;
Returns the time when the object was last updated.
none
none
Pragma RESTRICT_REFERENCES(getUpdateTime, WNDS, WNPS, RNDS, RNPS)
none
Get the updated time of some audio data:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT aud INTO obj FROM TAUD WHERE N = 1 ; DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getUpdateTime,'MM-DD-YYYY HH24:MI:SS')); EXCEPTION WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.PUT_LINE('Source not specified'); END; /
setUpdateTime(current_time DATE);
Sets the time when the audio data was last updated. Use this method whenever you modify the audio data. The methods setDescription( ), setMimeType( ), setSource( ), import( ), importFrom( ), export( ), deleteContent, and all set audio accessors call this method implicitly.
The timestamp to be stored. Defaults to SYSDATE.
You must invoke this method whenever you modify the audio data.
none
none
Set the updated time of some audio data:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT aud INTO obj FROM TAUD WHERE N = 1; obj.setUpdateTime(SYSDATE); UPDATE TAUD SET aud=obj WHERE N = 1; COMMIT; END; /
This section presents reference information on the ORDAudio methods associated with the description attribute.
setDescription (user_description IN VARCHAR2);
Sets the description of the audio data.
The description of the audio data.
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 Oracle8i interMedia make use of this description attribute to present audio data to users.
Calling this method implicitly calls the setUpdateTime( ) method.
none
none
Set the description attribute for some audio data:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('writing title'); DBMS_OUTPUT.PUT_LINE('-------------'); obj.setDescription('audio1.wav'); DBMS_OUTPUT.PUT_LINE(obj.getDescription); UPDATE TAUD SET aud=obj WHERE N=1; COMMIT; END; /
getDescription RETURN VARCHAR2;
Returns the description of the audio data.
none
none
Pragma RESTRICT_REFERENCES(getDescription, WNDS, WNPS, RNDS, RNPS)
If the description is not set and you call the getDescription( ) method, a DESCRIPTION_IS_NOT_SET exception is raised.
See the example in the setDescription( ) Method.
This section presents reference information on the ORDAudio methods associated with the mimeType attribute.
setMimeType(mime IN VARCHAR2);
Allows you to set the MIME type of the audio data.
The MIME type.
Calling this method implicitly calls the setUpdateTime( ) method.
Call the setMimeType( ) method to set the MIME type if the source is a file or BLOB.
The MIME type is extracted from the HTTP header on import for HTTP sources.
none
If you call the setMimeType( ) method and the value for mimeType is NULL, an INVALID_MIME_TYPE exception is raised.
Set the MIME type for some stored audio data:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('writing mimetype'); DBMS_OUTPUT.PUT_LINE('----------------'); obj.setMimeType('audio/basic'); DBMS_OUTPUT.PUT_LINE(obj.getMimeType); UPDATE TAUD SET aud=obj WHERE N=1; COMMIT; END; /
getMimeType RETURN VARCHAR2;
Returns the MIME type for the audio data.
none
If the source is an HTTP server, the MIME type information is read from the HTTP header information. If the source is a file or BLOB, you must call the setMimeType( ) method and set the MIME type.
Pragma RESTRICT_REFERENCES(getMimeType, WNDS, WNPS, RNDS, RNPS)
none
See the example in the setMimeType( ) Method.
This section presents reference information on the ORDAudio methods associated with the source attribute.
processSourceCommand( ctx IN OUT RAW, cmd IN VARCHAR2, arguments IN VARCHAR2, result OUT RAW) RETURN RAW;
Allows you to send any command and its arguments to the source plug-in. This method is available only for user-defined source plug-ins.
The source plug-in context information. This must be allocated. You must call the openSource( ) method; see the introduction to this chapter for more information.
Any command recognized by the source plug-in.
The arguments of the command.
The result of calling this method returned by the source plug-in.
Use this method to send any command and its respective arguments to the source plug-in. Commands are not interpreted; they are just taken and passed through to be processed.
none
If the value of srcType is NULL, then calling this method raises the exception ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION.
If the processSourceCommand( ) method is not supported by the source plug-in being used, an ORDSourceExceptions.METHOD_NOT_SUPPORTED exception is raised.
Calling this method within a source plug-in when any other exception is raised, raises an exception, ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION.
See Appendix H for more information about these exceptions.
Process some commands:
DECLARE obj ORDSYS.ORDAudio; res RAW(4000); result RAW(4000); command VARCHAR(4000); argList VARCHAR(4000); ctx RAW(4000) :=NULL; BEGIN select aud into obj from TAUD where N =1 for UPDATE; -- assign command -- assign argList res := obj.processSourceCommand (ctx, command, argList, result); UPDATE TAUD SET aud=obj WHERE N=1 ; COMMIT; EXCEPTION WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('Source METHOD_NOT_SUPPORTED caught'); WHEN ORDSYS.ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.put_line('SOURCE PLUGIN EXCEPTION caught'); WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('AUDIO METHOD_NOT_SUPPORTED EXCEPTION caught'); 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; /
isLocal RETURN BOOLEAN;
Returns TRUE if the data is stored locally in a BLOB or FALSE if the data is stored externally.
none
If the local attribute is set to 1 or NULL, this method returns TRUE, otherwise this method returns FALSE.
Pragma RESTRICT_REFERENCES(getLocal, WNDS, WNPS, RNDS, RNPS)
none
Determine whether or not the data is local:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT s INTO obj FROM TAUD WHERE N = 1 ; if(obj.isLocal = TRUE) then DBMS_OUTPUT.put_line('local is set true'); else DBMS_OUTPUT.put_line('local is set false'); end if; END; /
setLocal;
Sets the local attribute to indicate that the data is stored internally in a BLOB. When local is set, audio methods look for audio data in the source.localData attribute.
none
This method sets the local attribute to 1 meaning the data is stored locally in localData.
none
none
Set the flag to local for the data:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT s INTO obj FROM TAUD WHERE N = 1 FOR UPDATE; obj.setLocal; UPDATE TAUD SET s=obj WHERE N = 1; COMMIT; END; /
clearLocal;
Resets the local flag to indicate that the data is stored externally. When the local flag is set to clear, audio methods look for audio data using the srcLocation, srcName, and srcType attributes.
none
This method sets the local attribute to a 0, meaning the data is stored externally or outside of Oracle8i.
none
none
Clear the value of the local flag for the data:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT s INTO obj FROM TAUD WHERE N = 1 FOR UPDATE; obj.clearLocal; UPDATE TAUD SET s=obj WHERE N = 1; COMMIT; END; /
setSource( source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2);
Sets or alters information about the external source of the audio data.
The source type of the external data. See the "ORDSource Object Type" definition in Chapter 6 for more information.
The source location of the external data. See the "ORDSource Object Type" definition in Chapter 6 for more information.
The source name of the external data. See the "ORDSource Object Type" definition in Chapter 6 for more information.
Users can use this method to set the audio data source to a new BFILE or URL.
You must ensure that the directory exists or is created before you use this method.
Calling this method implicitly calls the setUpdateTime( ) method.
none
none
Set the source of the audio data:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('setting and getting source'); DBMS_OUTPUT.PUT_LINE('--------------------------'); obj.setSource('FILE','AUDIODIR','audio.au'); DBMS_OUTPUT.PUT_LINE(obj.getSource); UPDATE TAUD SET aud=obj WHERE N=1; COMMIT; END; /
getSource RETURN VARCHAR2;
Returns information about the external location of the audio data in URL format.
none
Possible return values are:
Pragma RESTRICT_REFERENCES(getSource, WNDS, WNPS, RNDS, RNPS)
none
See the example in the setSource( ) Method.
getSourceType RETURN VARCHAR2;
Returns a string containing the type of the external audio data source.
none
Returns a VARCHAR2 string containing the type of the external audio data source, for example 'FILE'.
Pragma RESTRICT_REFERENCES(getSourceType, WNDS, WNPS, RNDS, RNPS)
none
Get the source type information about an audio data source:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('setting and getting source'); DBMS_OUTPUT.PUT_LINE('--------------------------'); -- set source to a file obj.setSource('FILE','AUDIODIR','testaud.dat'); -- get source information DBMS_OUTPUT.put_line(obj.getSource); DBMS_OUTPUT.put_line(obj.getSourceType); DBMS_OUTPUT.put_line(obj.getSourceLocation); DBMS_OUTPUT.put_line(obj.getSourceName); UPDATE TAUD SET aud=obj WHERE N=1; COMMIT; EXCEPTION WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.PUT_LINE('Source not specified'); END; /
getSourceLocation RETURN VARCHAR2;
Returns a string containing the value of the external audio data source location.
none
This method returns a VARCHAR2 string containing the value of the external audio data location, for example 'BFILEDIR'.
Pragma RESTRICT_REFERENCES(getSourceLocation, WNDS, WNPS, RNDS, RNPS)
If the value of srcLocation is NULL, then calling this method raises an ORDSourceExceptions.INCOMPLETE_SOURCE_LOCATION exception.
See the example in the getSourceType Method.
getSourceName RETURN VARCHAR2;
Returns a string containing of the name of the audio external data source.
none
This method returns a VARCHAR2 string containing the name of the external data source, for example 'testaud.dat'.
Pragma RESTRICT_REFERENCES(getSourceName, WNDS, WNPS, RNDS, RNPS)
If the value of srcName is NULL, then calling this method raises an ORDSourceExceptions.INCOMPLETE_SOURCE_NAME exception.
See the example in the getSourceType Method.
import(ctx IN OUT RAW);
Transfers audio data from an external audio data source to a local source (localData) within an Oracle database.
The source plug-in context information.This must be allocated. You must call the openSource( ) method; see the introduction to this chapter for more information.
Use the setSource( ) method to set the external source type, location, and name prior to calling the import( ) method.
You must ensure that the directory exists or is created before you use this method.
After importing data from an external audio data source to a local source (within an 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.
none
If the value of srcType is NULL, then calling this method raises an ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION exception.
If the value of dlob is NULL, then calling this method raises an ORDSourceExceptions.NULL_SOURCE exception.
If the import( ) method is not supported by the source plug-in being used, an ORDSourceExceptionsMETHOD_NOT_SUPPORTED exception is raised.
Calling this method within a source plug-in when any other exception is raised, raises an ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION exception.
See Appendix H for more information about these exceptions.
Import audio data from an external audio data source into the local source:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1 FOR UPDATE; DBMS_OUTPUT.PUT_LINE('setting and getting source'); DBMS_OUTPUT.PUT_LINE('--------------------------'); -- set source to a file obj.setSource('FILE','AUDIODIR','testaud.dat'); -- get source information DBMS_OUTPUT.PUT_LINE(obj.getSource); -- import data obj.import(ctx); -- check size DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getContentLength(ctx))); DBMS_OUTPUT.PUT_LINE(obj.getSource); DBMS_OUTPUT.PUT_LINE('deleting contents'); DBMS_OUTPUT.PUT_LINE('-----------------'); obj.deleteContent; DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getContentLength(ctx))); UPDATE TAUD SET aud=obj WHERE N=1; COMMIT; END; /
importFrom(ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2);
Transfers audio data from the specified external audio data source to a local source (localData) within an Oracle database.
The source plug-in context information. This must be allocated. You must call the openSource( ) method; see the introduction to this chapter for more information.
The source type of the audio data.
The location from where the audio data is to be imported.
The name of the audio data.
This method is similar to the import( ) method except the source information is specified within the method instead of separately.
You must ensure that the directory exists or is created before you use this method.
After importing data from an external audio data source to a local source (within an 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.
none
If the value of dlob is NULL, then calling this method raises an ORDSourceExceptions.NULL_SOURCE exception.
If the importFrom( ) method is not supported by the source plug-in being used, an ORDSourceExceptionsMETHOD_NOT_SUPPORTED exception is raised.
Calling this method within a source plug-in when any other exception is raised, raises an ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION exception.
See Appendix H for more information about these exceptions.
Import audio data from the specified external data source into the local source:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1 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','AUDIODIR','testaud.dat'); -- check size DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getContentLength(ctx))); DBMS_OUTPUT.PUT_LINE(obj.getSource); DBMS_OUTPUT.PUT_LINE('deleting contents'); DBMS_OUTPUT.PUT_LINE('-----------------'); obj.deleteContent; DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getContentLength(ctx))); DBMS_OUTPUT.PUT_LINE(TO_CHAR(DBMS_LOB.GETLENGTH(obj.getContent))); UPDATE TAUD SET aud=obj WHERE N=1; COMMIT; EXCEPTION WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.PUT_LINE('Source not specified'); END; /
export( ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2);
Transfers audio data from a local source (localData) within an Oracle Database to an external audio data source.
The source plug-in context information.
The source type of the location to where the data is to be exported.
The location where the audio data is to be exported.
The name of the audio object to where the data is to be exported.
After exporting audio data, all audio attributes remain unchanged and srcType, srcLocation, and srcName are updated with input values. After calling the export( ) method, you can call the deleteContent method to delete the content of the local data.
There is no server-side, native support for the export( ) method; this method is available for user-defined sources that can support the export( ) method.
Invoking this method implicitly calls the setUpdateTime( ) method.
none
If the value of srcType is NULL, then calling this method raises an ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION exception.
If the export( ) method is not supported by the source plug-in being used, an ORDSourceExceptions.METHOD_NOT_SUPPORTED exception is raised.
Calling this method within a source plug-in when any other exception is raised, raises an ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION exception.
See Appendix H for more information about these exceptions.
Export audio data from a local source to an external audio data source and then delete the contents:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N =1; obj.export(ctx,'FILE','AUDIODIR','complete.wav'); EXCEPTION WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('Source METHOD_NOT_SUPPORTED caught'); WHEN ORDSYS.ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.put_line('SOURCE PLUGIN EXCEPTION caught'); WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('AUDIO METHOD_NOT_SUPPORTED EXCEPTION caught'); WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.put_line('AUDIO PLUGIN EXCEPTION caught'); WHEN OTHERS THEN DBMS_OUTPUT.put_line('OTHER EXCEPTION caught'); END; /
getContentLength(ctx IN OUT RAW) RETURN INTEGER;
Returns the length of the audio data content stored in the source.
The source plug-in context information.
This method is not supported for all source types. For example, "HTTP" type sources do not support this method. If you want to implement this call for "HTTP" type sources, you must define your own modified "HTTP" source type and implement this method on it.
Pragma RESTRICT_REFERENCES(getContentLength, WNDS, WNPS, RNDS, RNPS)
If the value of srcType is NULL and data is not stored locally in the
BLOB, then calling this method raises an exception,
ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION.
Calling this method within a source plug-in when any other exception is raised, raises an ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION exception.
See Appendix H for more information about this exception.
See the example in the import( ) Method
getContentInLob( ctx IN OUT RAW, dest_lob IN OUT NOCOPY BLOB, mimeType OUT VARCHAR2, format OUT VARCHAR2)
Transfers data from a data source into the specified BLOB. The BLOB can be another BLOB, not the one for the object.
The source plug-in context information.
The LOB in which to receive data.
The MIME type of the data; this may or may not be returned.
The format of the data; this may or may not be returned.
none
none
If the value of srcType is NULL, then calling this method raises an ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION exception.
If the getContentInLob( ) method is not supported by the source plug-in being used, an ORDSourceExceptions.METHOD_NOT_SUPPORTED exception is raised.
Calling this method within a source plug-in when any other exception is raised, raises an ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION exception.
See Appendix H for more information about these exceptions.
Get data from a data source and put it into the specified BLOB:
DECLARE obj ORDSYS.ORDAudio; tempBLob BLOB; mimeType VARCHAR2(4000); format VARCHAR2(4000); ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N = 1 ; 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); -- process tempBLob DBMS_OUTPUT.PUT_LINE(TO_CHAR(DBMS_LOB.getLength(tempBLob))); 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; /
getContent RETURN BLOB;
Returns a handle to the local BLOB storage, that is the BLOB within the ORDAudio object.
none
none
Pragma RESTRICT_REFERENCES(getContent, WNDS, WNPS, RNDS, RNPS)
none
A client accesses audio data:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1 ; DBMS_OUTPUT.PUT_LINE('--------------------------'); DBMS_OUTPUT.put_line(TO_CHAR(DBMS_LOB.getLength(obj.getContent))); EXCEPTION WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.PUT_LINE('Source not specified'); END; /
deleteContent;
Deletes the local data from the current local source (localData).
none
This method can be called after you export the data from the local source to an external audio data source and you no longer need this data in the local source.
Call this method when you want to update the object with a new object.
none
none
See the example in the import( ) Method.
This section presents reference information on the ORDAudio methods associated with file-like operations on a data source. You can use the following methods specifically to manipulate audio data.
openSource(userArg IN RAW, ctx OUT RAW) RETURN INTEGER;
Opens a data source.
The user argument. This may be used by user-defined source plug-ins.
The source plug-in context information. This must be allocated. You must call the openSource( ) method; see the introduction to this chapter for more information.
The return INTEGER is 0 (zero) for success and >0 (for example, 1) for failure. The exact number and the meaning for that number is plug-in defined. For example, for the file plug-in, 1 might mean "File not found," 2 might mean "No such directory," and so forth.
none
If the value for srcType is NULL and data is not local, then calling this method raises an ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION exception.
If the openSource( ) method is not supported by the source plug-in being used, an ORDSourceExceptions.METHOD_NOT_SUPPORTED exception is raised.
Calling this method within a source plug-in when any other exception is raised, raises an ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION exception.
See Appendix H for more information about these exceptions.
Open an external data source:
DECLARE obj ORDSYS.ORDAudio; res INTEGER; ctx RAW(4000) :=NULL; userArg RAW(4000); BEGIN select aud into obj from TAUD where N =1 for UPDATE; res := obj.openSource(userArg, ctx); UPDATE TAUD SET aud=obj WHERE N=1 ; 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; /
closeSource(ctx IN OUT RAW) RETURN INTEGER;
Closes a data source.
The source plug-in context information. You must call the openSource( ) method; see the introduction to this chapter for more information.
The return INTEGER is 0 (zero) for success and >0 (for example, 1) for failure. The exact number and the meaning for that number is plug-in defined. For example, for the file plug-in, 1 might mean "File not found," 2 might mean "No such directory," and so forth.
none
If the value for srcType is NULL and data is not local, then calling this method raises an ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION exception.
If the closeSource( ) method is not supported by the source plug-in being used, an ORDSourceExceptions.METHOD_NOT_SUPPORTED exception is raised.
Calling this method within a source plug-in when any other exception is raised, raises an ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION exception.
See Appendix H for more information about these exceptions.
Close an external data source:
DECLARE obj ORDSYS.ORDAudio; res INTEGER; ctx RAW(4000) :=NULL; BEGIN select aud into obj from TAUD where N =2 for UPDATE; res := obj.closeSource(ctx); UPDATE TAUD SET aud=obj WHERE N=2 ; 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; /
trim(ctx IN OUT RAW, newlen IN INTEGER) RETURN INTEGER;
Trims a data source.
The source plug-in context information. This must be allocated. You must call the openSource( ) method; see the introduction to this chapter for more information.
The trimmed new length.
The return INTEGER is 0 (zero) for success and >0 (for example, 1) for failure. The exact number and the meaning for that number is plug-in defined. For example, for the file plug-in, 1 might mean "File not found," 2 might mean "No such directory," and so forth.
none
If the value for srcType is NULL and data is not local, then calling this method raises an ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION exception.
If the trimSource( ) method is not supported by the source plug-in being used, an ORDSourceExceptions.METHOD_NOT_SUPPORTED exception is raised.
Calling this method within a source plug-in when any other exception is raised, raises an ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION exception.
See Appendix H for more information about these exceptions.
Trim an external data source:
DECLARE obj ORDSYS.ORDAudio; res INTEGER; ctx RAW(4000) :=NULL; BEGIN select aud into obj from TAUD where N =1 for UPDATE; res := obj.trimSource(ctx,0); UPDATE TAUD SET aud=obj WHERE N=1 ; 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; /
readFromSource( ctx IN OUT RAW, startPos IN INTEGER, numBytes IN OUT INTEGER, buffer OUT RAW);
Allows you to read a buffer of n bytes from a source beginning at a start position.
The source plug-in context information. This must be allocated. You must call the openSource( ) method; see the introduction to this chapter for more information.
The start position in the data source.
The number of bytes to be read from the data source.
The buffer into which the data will be read.
This method is not supported for HTTP sources.
To successfully read "HTTP" source types, the entire URL source must be requested to be read. If you want to implement a read method for an "HTTP" source type, you must provide your own implementation for this method in the modified source plug-in for the HTTP source type.
none
If the value of srcType is NULL and data is not local, then calling this method raises an ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION exception.
If data is local but localData is NULL, then calling this method raises an ORDSourceExceptions.NULL_SOURCE exception.
If the readFromSource( ) method is not supported by the source plug-in being used, an ORDSourceExceptions.METHOD_NOT_SUPPORTED exception is raised.
Calling this method within a source plug-in when any other exception is raised, raises an ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION exception.
See Appendix H for more information about these exceptions.
Read a buffer from the source:
DECLARE obj ORDSYS.ORDAudio; buffer RAW(4000); i INTEGER; ctx RAW(4000) :=NULL; BEGIN i := 20; select aud into obj from TAUD where N =1 ; obj.readFromSource(ctx,1,i,buffer); DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getContentLength(ctx))); 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; /
writeToSource( ctx IN OUT RAW, startPos IN INTEGER, numBytes IN OUT INTEGER, buffer IN RAW);
Allows you to write a buffer of n bytes to a source beginning at a start position.
The source plug-in context information. This must be allocated. You must call the openSource( ) method; see the introduction to this chapter for more information.
The start position in the source to where the buffer should be copied.
The number of bytes to be written to the source.
The buffer of data to be written.
This method assumes that the writable source allows you to write n number of bytes starting at a random byte location. The FILE and HTTP source types are not writable sources and do not support this method. This method will work if data is stored in a local BLOB or is accessible through a user-defined source plug-in.
none
If the value of srcType is NULL and data is not local, then calling this method raises an ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION exception.
If data is local but localData is NULL, then calling this method raises an ORDSourceExceptions.NULL_SOURCE exception.
If the writeToSource( ) method is not supported by the source plug-in being used, an ORDSourceExceptions.METHOD_NOT_SUPPORTED exception is raised.
Calling this method within a source plug-in when any other exception is raised, raises an ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION exception.
See Appendix H for more information about these exceptions.
Write a buffer to the source:
DECLARE obj ORDSYS.ORDAudio; n INTEGER := 6; ctx RAW(4000) :=NULL; BEGIN select aud into obj from TAUD where N =1 for update; obj.writeToSource(ctx,1,n,UTL_RAW.CAST_TO_RAW('helloP')); DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getContentLength(ctx))); update TAUD set aud = obj where N =1 ; 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; /
This section presents reference information on the ORDAudio methods associated with the comments attribute.
appendToComments(amount IN BINARY_INTEGER, buffer IN VARCHAR2);
Appends a specified buffer and amount of comment data to the end of the comments attribute of the audio object.
The amount of comment data to be appended.
The buffer of comment data to be appended.
none
none
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
Append comment information to the comments attribute of the audio object:
DECLARE obj ORDSYS.ORDAudio; i INTEGER; j INTEGER; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1 FOR UPDATE; obj.deleteComments; obj.writeToComments(1,18,'This is a Comments'); obj.appendToComments(18,'This is a Comments'); -- check comments DBMS_OUTPUT.PUT_LINE(obj.readFromComments(1,obj.getCommentLength)); DBMS_OUTPUT.PUT_LINE(obj.locateInComments('Comments',1)); obj.trimComments(18); DBMS_OUTPUT.PUT_LINE(obj.readFromComments(1,18)); i := 8; j := 9; obj.eraseFromComments(i,j); DBMS_OUTPUT.PUT_LINE(obj.readFromComments(1,10)); obj.deleteComments; DBMS_OUTPUT.PUT_LINE(obj.readFromComments(1,10)); UPDATE TAUD SET aud=obj WHERE N=1; COMMIT; EXCEPTION WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.PUT_LINE('Source not specified'); END; /
writeToComments(offset IN INTEGER, amount IN BINARY_INTEGER, buffer IN VARCHAR2);
Writes a specified amount of comment buffer data to the comments attribute of the audio object beginning at the specified offset.
The starting offset position in comments where comments data is to be written.
The amount of comment data to be written.
The buffer of comment data to be written.
none
none
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
See the example in the appendToComments( ) Method.
readFromComments(offset IN INTEGER, amount IN BINARY_INTEGER :=32767) RETURN VARCHAR2;
Reads a specified amount of comment data from the comments attribute of the audio object beginning at a specified offset.
The starting offset position in comments from where comments data is to be read.
The amount of comment data to be read.
none
Pragma RESTRICT_REFERENCES(readFromComments, WNDS, WNPS, RNDS, RNPS)
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
See the example in the appendToComments( ) Method.
locateInComments(pattern IN VARCHAR2, offset IN INTEGER := 1, occurrence IN INTEGER := 1) RETURN INTEGER;
Matches and locates the nth occurrence of the specified pattern of character data in the comments attribute of the audio object beginning at a specified offset.
The pattern of comment data for which to search.
The starting offset position in comments where the search for a match should begin.
The nth occurrence in the comments where the pattern of comment data was found.
none
none
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
See the example in the appendToComments( ) Method.
trimComments(newlen IN INTEGER);
Trims the length of comments of the audio object to the specified new length.
The new length to which the comments are to be trimmed.
none
none
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
See the example in the appendToComments( ) Method.
eraseFromComments(amount IN OUT NOCOPY INTEGER, offset IN INTEGER := 1);
Erases a specified amount of comment data from the comments attribute of the audio object beginning at a specified offset.
The amount of comment data to be erased.
The starting offset position in comments where comments data is to be erased.
none
none
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
See the example in the appendToComments( ) Method.
deleteComments;
Deletes the comments attribute of the audio object.
none
none
none
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
See the example in the appendToComments( ) Method.
loadCommentsFromFile(fileobj IN BFILE, amount IN INTEGER, from_loc IN INTEGER := 1, to_loc IN INTEGER := 1);
Loads a specified amount of comment data from a BFILE into the comments attribute of the audio object beginning at a specified offset.
The file object to be loaded.
The amount of comment data to be loaded from the BFILE.
The location from which to load comments from the BFILE.
The location to which to load comments.
none
none
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
Load comment information from a BFILE into the comments of the audio data:
DECLARE file_handle BFILE; obj ORDSYS.ORDAudio; isopen BINARY_INTEGER; amount INTEGER; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1 FOR UPDATE; file_handle := BFILENAME(obj.getSourceLocation, obj.getSourceName); isopen := DBMS_LOB.FILEISOPEN(file_handle); IF isopen = 0 THEN dbms_output.put_line('File Not Open'); DBMS_LOB.FILEOPEN(file_handle, DBMS_LOB.FILE_READONLY); END IF; dbms_output.put_line('File is now Open'); isopen := DBMS_LOB.FILEISOPEN(file_handle); IF isopen <> 0 THEN amount := DBMS_LOB.GETLENGTH(file_handle); END IF; obj.deleteComments; obj.loadCommentsFromFile(file_handle, 18, 1, 18); DBMS_OUTPUT.put_line(TO_CHAR(obj.getCommentLength)); UPDATE TAUD SET aud=obj WHERE N=1; COMMIT; END; /
copyCommentsOut(dest IN OUT NOCOPY CLOB, amount IN INTEGER, from_loc IN INTEGER := 1, to_loc IN INTEGER := 1);
Copies a specified amount of audio object comments attribute into the given CLOB.
The destination to which the comments are to be copied.
The amount of comments to be copied.
The location from which to copy comments.
The location to which to copy comments.
none
none
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
Copy comments of the audio data to the given CLOB:
DECLARE obj ORDSYS.ORDAudio; obj1 ORDSYS.ORDAudio; BEGIN SELECT aud INTO obj1 FROM TAUD WHERE N=2 FOR UPDATE; SELECT aud INTO obj FROM TAUD WHERE N=1; obj.copyCommentsOut(obj1.comments,obj.getCommentLength,1,10); DBMS_OUTPUT.put_line(obj1.getCommentLength); DBMS_OUTPUT.put_line(obj.getCommentLength); UPDATE TAUD SET aud=obj1 WHERE N=2; COMMIT; EXCEPTION WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.PUT_LINE('Source not specified'); END; /
compareComments(compare_with_lob IN CLOB, amount IN INTEGER := 4294967295, starting_pos_in_comment IN INTEGER := 1, starting_pos_in_compare IN INTEGER := 1) RETURN INTEGER;
Compares a specified amount of comments of audio data with comments of the other CLOB provided.
The comparison comments.
The amount of comments of audio data to compare with the comparison comments.
The starting position in the comments attribute of the audio object.
The starting position in the comparison comments.
none
Pragma RESTRICT_REFERENCES(compareComments, WNDS, WNPS, RNDS, RNPS)
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
Compare comments of the audio data with comments of another CLOB:
DECLARE file_handle BFILE; obj ORDSYS.ORDAudio; obj1 ORDSYS.ORDAudio; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=2 ; SELECT aud INTO obj1 FROM TAUD WHERE N=1; DBMS_OUTPUT.put_line('comparison output'); DBMS_OUTPUT.put_line(obj.compareComments(obj1.comments,obj.getCommentLength,1,18)); EXCEPTION WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.PUT_LINE('Source not specified'); END; /
getCommentLength RETURN INTEGER;
Returns the length of the comments attribute of the audio object.
none
none
Pragma RESTRICT_REFERENCES(getCommentLength, WNDS, WNPS, RNDS, RNPS)
The exceptions-raised behavior for this method is similar to that of the DBMS_LOB functions and procedures. See the DBMS_LOB package description in the Oracle8i Supplied Packages Reference manual for a list of exceptions that can be raised for the DBMS_LOB functions and procedures.
See the example in the compareComments( ) Method.
This section presents reference information on the ORDAudio methods associated with the audio attributes accessors.
setFormat(knownFormat IN VARCHAR2);
Sets the format attribute of the audio object.
The known format of the audio data to be set in the audio object.
Calling this method implicitly calls the setUpdateTime( ) method.
none
If the value for the knownFormat parameter is NULL, then calling this method raises a NULL_INPUT_VALUE exception.
Set the format for some audio data:
DECLARE obj ORDSYS.ORDAudio; BEGIN select aud into obj from TAUD where N =1 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.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('ORDSourceExceptions.METHOD_NOT_SUPPORTED caught'); WHEN OTHERS THEN DBMS_OUTPUT.put_line('EXCEPTION caught'); END; /
getFormat RETURN VARCHAR2;
Returns the value of the format attribute of the audio object.
none
none
Pragma RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS)
If the value for format is NULL, then calling this method raises an AUDIO_FORMAT_IS_NULL exception.
See the example in the setFormat( ) Method.
getFormat(ctx IN OUT RAW) RETURN VARCHAR2;
Calls the format plug-in to read the format embedded in the stored audio data.
The format plug-in context information.
If the format found in the object is NULL, then the getFormat( ) method uses the default format plug-in to read the audio data to determine the format; otherwise, it uses the plug-in specified by the format. AUFF, AIFF, AIFC, and WAVE plug-ins are provided, so users may use these plug-ins too.
Audio file format information can be extracted from the audio data itself. You can extend support to a file format not known by the ORDAudio object by implementing an ORDPLUGINS.ORDX_<format>_AUDIO package that supports that file format. See Section 2.3.13 for more information.
none
If the audio plug-in raises an exception when calling this method, then the getFormat( ) method raises an AUDIO_PLUGIN_EXCEPTION exception.
Call the format plug-in to read the actual format embedded in the stored audio data:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1; DBMS_OUTPUT.PUT_LINE('getting audio file format'); DBMS_OUTPUT.PUT_LINE('-------------------------'); DBMS_OUTPUT.PUT_LINE(obj.getFormat(ctx)); EXCEPTION WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.PUT_LINE('AUDIO_PLUGIN_EXCEPTION caught'); END; /
setEncoding(knownEncoding IN VARCHAR2);
Sets the value of the encoding attribute of the audio object.
A known encoding type.
Calling this method implicitly calls the setUpdateTime( ) method.
none
If the value for the knownEncoding parameter is NULL, then calling this method raises a NULL_INPUT_VALUE exception.
See the example in the setFormat( ) Method.
getEncoding RETURN VARCHAR2;
Returns the value of the encoding attribute of the audio object.
none
none
Pragma RESTRICT_REFERENCES(getEncoding, WNDS, WNPS, RNDS, RNPS)
none
See the example in the setFormat( ) Method.
getEncoding(ctx IN OUT RAW) RETURN VARCHAR2;
Calls the format plug-in to read the encoding embedded in the stored audio data.
The format plug-in context information.
If the format found in the object is NULL, then the getEncoding( ) method uses the default format plug-in to read the audio data to determine the encoding; otherwise, it uses the plug-in specified by the format.
Audio encoding information can be extracted from the audio data itself. You can extend support to a format that is not understood by the ORDAudio object by implementing an ORDPLUGIN.ORDX_<format>_AUDIO package that supports that format. See Section 2.3.13 for more information.
This function returns the value UNKNOWN, if the encoding type cannot be determined.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Call the format plug-in to read the actual encoding embedded in the stored audio data:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1; DBMS_OUTPUT.PUT_LINE('getting audio encoding'); DBMS_OUTPUT.PUT_LINE('----------------------'); DBMS_OUTPUT.PUT_LINE(obj.getEncoding(ctx)); EXCEPTION WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.PUT_LINE('AUDIO_PLUGIN_EXCEPTION caught'); END; /
setNumberOfChannels(knownNumberOfChannels IN INTEGER);
Sets the value of the numberOfChannels attribute for the audio object.
A known number of channels.
Calling this method implicitly calls the setUpdateTime( ) method.
none
If the value for the knownNumberOfChannels parameter is NULL, then calling this method raises a NULL_INPUT_VALUE exception.
See the example in the setFormat( ) Method.
getNumberOfChannels RETURN INTEGER;
Returns the value of the numberOfChannels attribute of the audio object.
none
none.
Pragma RESTRICT_REFERENCES(getNumberOfChannels, WNDS, WNPS, RNDS, RNPS)
none
See the example in the setFormat( ) Method.
getNumberOfChannels(ctx IN OUT RAW) RETURN INTEGER;
Calls the format plug-in to read the number of audio channels embedded in the stored audio data.
The format plug-in context information.
The number of audio channels information is available from the header of the formatted audio data.
If the format found in the object is NULL, then the getNumberOfChannels( ) method uses the default format plug-in to read the audio data to determine the number of channels; otherwise, it uses the plug-in specified by the format.
Audio number of channels information can be extracted from the audio data itself. You can extend support to a format that is not understood by the ORDAudio object by implementing an ORDPLUGINS.ORDX_<format>_AUDIO package that supports that format. See Section 2.3.13 for more information.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Call the format plug-in to read the actual number of audio channels embedded in the stored audio data:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1; DBMS_OUTPUT.PUT_LINE('getting audio channels'); DBMS_OUTPUT.PUT_LINE('-------------------------'); DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getNumberOfChannels(ctx))); EXCEPTION WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.PUT_LINE('AUDIO_PLUGIN_EXCEPTION caught'); END; /
setSamplingRate(knownSamplingRate IN INTEGER);
Sets the value of the samplingRate attribute of the audio object.
A known sampling rate.
Calling this method implicitly calls the setUpdateTime( ) method.
none
If the value for the knownSamplingRate parameter is NULL, then calling this method raises a NULL_INPUT_VALUE exception.
See the example in the setFormat( ) Method.
getSamplingRate IN INTEGER;
Returns the value of the samplingRate attribute of the audio object.
none
none
Pragma RESTRICT_REFERENCES(getSamplingRate, WNDS, WNPS, RNDS, RNPS)
none
See the example in the setFormat( ) Method.
getSamplingRate(ctx IN OUT INTEGER);
Calls the format plug-in to read the sampling rate embedded in the stored audio data.
The format plug-in context information.
The audio sampling rate information is available from the header of the formatted audio data.
If the format found in the object is NULL, then the getSamplingRate( ) method uses the default format plug-in to read the audio data to determine the sampling rate; otherwise, it uses the plug-in specified by the format.
Audio sampling rate information can be set to a known sampling rate for the audio data. 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 Section 2.3.13 for more information.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Return the sampling rate for audio data stored in the database:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1; DBMS_OUTPUT.PUT_LINE('getting sampling rate'); DBMS_OUTPUT.PUT_LINE('---------------------'); DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getSamplingRate(ctx))||' KHz'); EXCEPTION WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.PUT_LINE('AUDIO_PLUGIN_EXCEPTION caught'); END; /
setSampleSize(knownSampleSize IN INTEGER);
Sets the value of the sampleSize attribute of the audio object.
A known sample size.
Calling this method implicitly calls the setUpdateTime( ) method.
none
If the value for the knownSampleSize parameter is NULL, then calling this method raises a NULL_INPUT_VALUE exception.
See the example in the setFormat( ) Method.
getSampleSize RETURN INTEGER;
Returns the value of the sampleSize attribute of the audio object.
none
none
Pragma RESTRICT_REFERENCES(getSampleSize, WNDS, WNPS, RNDS, RNPS)
none
See the example in the setFormat( ) Method.
getSampleSize(ctx IN OUT RAW) RETURN INTEGER;
Calls the format plug-in to read the sample size embedded in the stored audio data.
The format plug-in context information.
The audio sample size information is available from the header of the formatted audio data.
If the format found in the object is NULL, then the getSampleSize( ) method uses the default format plug-in to read the audio data to determine the sample size format; otherwise, it uses the plug-in specified by the format.
Audio sample size 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 Section 2.3.13 for more information.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Return the sample size for audio data stored in the database:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1; DBMS_OUTPUT.PUT_LINE('getting sampling size'); DBMS_OUTPUT.PUT_LINE('---------------------'); DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getSampleSize(ctx))||' bits'); EXCEPTION WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.PUT_LINE('AUDIO_PLUGIN_EXCEPTION caught'); END; /
setCompressionType(knownCompressionType IN VARCHAR2);
Sets the value of the compressionType attribute of the audio object.
A known compression type.
Calling this method implicitly calls the setUpdateTime( ) method.
none
If the value for the knownCompressionType parameter is NULL, then calling this method raises a NULL_INPUT_VALUE exception.
See the example in the setFormat( ) Method.
getCompressionType RETURN VARCHAR2;
Returns the value of the compressionType attribute of the audio object.
none
none
Pragma RESTRICT_REFERENCES(getCompressionType, WNDS, WNPS, RNDS, RNPS)
none
See the example in the setFormat( ) Method.
getCompressionType(ctx IN OUT RAW) RETURN VARCHAR2;
Calls the format plug-in to read the compression type embedded in the stored audio data.
The format plug-in context information.
The audio compression type information is available from the header of the formatted audio data.
If the format found in the object is NULL, then the getCompressionType( ) method uses the default format plug-in to read the audio data to determine the compression type; otherwise, it uses your user-defined format plug-in.
Audio compression type 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 Section 2.3.13 for more information.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Return the type of compression used for audio data stored in the database:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1; DBMS_OUTPUT.PUT_LINE('getting compression type '); DBMS_OUTPUT.PUT_LINE('---------------------'); DBMS_OUTPUT.PUT_LINE(obj.getCompressionType(ctx)|| ' '); EXCEPTION WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('Source METHOD_NOT_SUPPORTED caught'); WHEN ORDSYS.ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.put_line('SOURCE PLUGIN EXCEPTION caught'); WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('AUDIO METHOD_NOT_SUPPORTED EXCEPTION caught'); 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; /
setAudioDuration(knownAudioDuration IN INTEGER);
Sets the value of the audioDuration attribute of the audio object.
A known audio duration.
Calling this method implicitly calls the setUpdateTime( ) method.
none
If the value for the knownAudioDuration parameter is NULL, then calling this method raises a NULL_INPUT_VALUE exception.
See the example in the setFormat( ) Method.
getAudioDuration RETURN INTEGER;
Returns the value of the audioDuration attribute of the audio object.
none
none
Pragma RESTRICT_REFERENCES(getAudioDuration, WNDS, WNPS, RNDS, RNPS)
none
See the example in the setFormat( ) Method.
getAudioDuration(ctx IN OUT RAW) RETURN INTEGER;
Calls the format plug-in to read the audio duration embedded in the stored audio data.
The format plug-in context information.
The audio duration information is available from the header of the formatted audio data.
If the format found in the object is NULL, then the getAudioDuration( ) method uses the default format plug-in to read the audio data to determine the audio duration; otherwise, it uses your user-defined format plug-in.
Audio duration 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 Section 2.3.13 for more information.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Return the duration or time to play the audio data stored in the database:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1 for update; DBMS_OUTPUT.PUT_LINE('getting audio duration'); DBMS_OUTPUT.PUT_LINE('---------------------'); obj.setFormat('WAVE'); DBMS_OUTPUT.PUT_LINE(obj.getAudioDuration(ctx)); update taud set aud = obj where n =1; EXCEPTION WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('Source METHOD_NOT_SUPPORTED caught'); WHEN ORDSYS.ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.put_line('SOURCE PLUGIN EXCEPTION caught'); WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('AUDIO METHOD_NOT_SUPPORTED EXCEPTION caught'); 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; /
setKnownAttributes( knownFormat IN VARCHAR2, knownEncoding IN VARCHAR2, knownNumberOfChannels IN INTEGER, knownSamplingRate IN INTEGER, knownSamleSize IN INTEGER, knownCompressionType IN VARCHAR2, knownAudioDuration IN INTEGER);
Sets the known audio attributes for the audio object.
The known format.
The known encoding type.
The known number of channels.
The known sampling rate.
The known sample size.
The known compression type.
The known audio duration.
Calling this method implicitly calls the setUpdateTime( ) method.
none
none
Set the known attributes for the audio data.
DECLARE obj ORDSYS.ORDAudio; BEGIN select aud into obj from TAUD where N =1 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)); 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; /
setProperties(ctx IN OUT RAW);
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 the following attributes of the audio data: format, encoding type, number of channels, sampling rate, and sample size.
The format plug-in context information.
If the format is set to NULL, then the setProperties( ) method uses the default format plug-in; otherwise, it uses the plug-in specified by the format.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Set the property information for known audio attributes:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN select aud into obj from TAUD where N =1 for update; obj.setProperties(ctx); --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 TAUD set aud = obj where N =1 ; 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; /
checkProperties(ctx IN OUT RAW) RETURN BOOLEAN;
Checks the properties of the stored audio data, including the following audio attributes: sample size, sample rate, number of channels, format, and encoding type.
The format plug-in context information.
If 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.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Check property information for known audio attributes:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(4000) :=NULL; BEGIN select aud into obj from TAUD where N =1 for update; if( obj.checkProperties(ctx) = TRUE ) then DBMS_OUTPUT.put_line('true'); else DBMS_OUTPUT.put_line('false'); end if; 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; /
getAttribute( ctx IN OUT RAW, name IN VARCHAR2) RETURN VARCHAR2;
Returns the value of the requested attribute from audio data for user-defined formats only.
The format plug-in context information.
The name of the attribute.
The audio data attributes are available from the header of the formatted audio data.
If the format is set to NULL, then the getAttribute( ) method uses the default format plug-in; otherwise, it uses your user-defined format plug-in.
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 Section 2.3.13 for more information.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Return information for the specified audio attribute for audio data stored in the database:
DECLARE obj ORDSYS.ORDAudio; res VARCHAR2(4000); ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1; DBMS_OUTPUT.PUT_LINE('getting audio sample size'); DBMS_OUTPUT.PUT_LINE('---------------------'); res := obj.getAttribute(ctx,'sample_size'); EXCEPTION WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('Source METHOD_NOT_SUPPORTED caught'); WHEN ORDSYS.ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.put_line('SOURCE PLUGIN EXCEPTION caught'); WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('AUDIO METHOD_NOT_SUPPORTED EXCEPTION caught'); 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; /
getAllAttributes( ctx IN OUT RAW, attributes IN OUT NOCOPY CLOB);
Returns a formatted string for convenient client access. For natively supported formats, the string includes the following list of audio data attributes separated by a comma (','): FileFormat, Encoding, NumberOfChannels, SamplingRate, and SampleSize. For user-defined formats, the string is defined by the format plug-in.
The format plug-in context information.
The attributes.
These audio data attributes are available from the header of the formatted audio data.
If the format is set to NULL, then the getAllAttributes( ) method uses the default format plug-in; otherwise, it uses the plug-in specified by the format.
Audio data attribute information can be extracted from the audio data itself. You can extend support to a format that is not understood by the ORDAudio object by implementing an ORDPLUGINS.ORDX_<format>_AUDIO package that supports this format. See Section 2.3.13 for more information.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Return all audio attributes for audio data stored in the database:
DECLARE obj ORDSYS.ORDAudio; tempLob CLOB; ctx RAW(4000) :=NULL; BEGIN SELECT aud INTO obj FROM TAUD WHERE N=1; DBMS_OUTPUT.PUT_LINE('getting comma separated list of all attribs'); 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));EXCEPTION WHEN ORDSYS.ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.PUT_LINE('ORDAudioExceptions.AUDIO_PLUGIN_EXCEPTION caught');END; /
This section presents reference information on the ORDAudio methods associated with processing audio data.
processAudioCommand( ctx IN OUT RAW, cmd IN VARCHAR2, arguments IN VARCHAR2, result OUT RAW) RETURN RAW;
Allows you to send a command and related arguments to the format plug-in for processing. This method is only supported for user-defined format plug-ins.
The format plug-in context information.
Any command recognized by the format plug-in.
The arguments of the command.
The result of calling this function returned by the format plug-in.
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.
If the format is set to NULL, then the processAudioCommand( ) method uses the default format plug-in; otherwise, it uses your user-defined format plug-in.
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 Section 2.3.13 for more information.
none
If the audio plug-in raises an exception when calling this method, then it raises an AUDIO_PLUGIN_EXCEPTION exception.
Process a set of commands:
DECLARE obj ORDSYS.ORDAudio; res RAW(4000); result RAW(4000); command VARCHAR(4000); argList VARCHAR(4000); ctx RAW(4000) :=NULL; BEGIN select aud into obj from TAUD where N =1 for UPDATE; -- assign command -- assign argList res := obj.processAudioCommand (ctx, command, argList, result); UPDATE TAUD SET aud=obj WHERE N=1 ; COMMIT; EXCEPTION WHEN ORDSYS.ORDSourceExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('Source METHOD_NOT_SUPPORTED caught'); WHEN ORDSYS.ORDSourceExceptions.SOURCE_PLUGIN_EXCEPTION THEN DBMS_OUTPUT.put_line('SOURCE PLUGIN EXCEPTION caught'); WHEN ORDSYS.ORDAudioExceptions.METHOD_NOT_SUPPORTED THEN DBMS_OUTPUT.put_line('AUDIO METHOD_NOT_SUPPORTED EXCEPTION caught'); 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; /
This section presents reference information on the packages or PL/SQL plug-ins provided.
Use the following provided ORDPLUGINS.ORDX_DEFAULT_AUDIO package as a guide in developing your own ORDPLUGINS.ORDX_<format>_AUDIO audio format package.
CREATE OR REPLACE PACKAGE ORDX_DEFAULT_AUDIO authid current_user AS --AUDIO ATTRIBUTES ACCESSORS FUNCTION getFormat(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getEncoding(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getNumberOfChannels(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getSamplingRate(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getSampleSize(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getCompressionType(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getAudioDuration(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio); FUNCTION checkProperties(ctx IN OUT RAW, obj IN OUT ORDSYS.ORDAudio) RETURN NUMBER; FUNCTION getAttribute(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, name IN VARCHAR2) RETURN VARCHAR2; PROCEDURE getAllAttributes(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, attributes IN OUT NOCOPY CLOB); --AUDIO PROCESSING METHODS FUNCTION processCommand(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio, cmd IN VARCHAR2, arguments IN VARHAR2, result OUT RAW) RETURN RAW; PRAGMA RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getEncoding, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getNumberOfChennels, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getSamplingRate, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getSampleSize, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getCompressionType, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getAttribute, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getAudioDuration, WNDS, WNPS, RNDS, RNPS); END; /
Table 3-1 shows the methods supported in the
ORDPLUGINS.ORDX_DEFAULT_AUDIO package and the exceptions raised if you call a method that is not supported.
The ORDPLUGINS.ORDX_AUFF_AUDIO package is provided and is used for the AUFF audio format specification.
CREATE OR REPLACE PACKAGE ORDX_AUFF_AUDIO authid current_user AS --AUDIO ATTRIBUTES ACCESSORS FUNCTION getFormat(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getEncoding(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getNumberOfChannels(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getSamplingRate(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getSampleSize(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getCompressionType(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getAudioDuration(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio); FUNCTION checkProperties(ctx IN OUT RAW, obj IN OUT ORDSYS.ORDAudio) RETURN NUMBER; FUNCTION getAttribute(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, name IN VARCHAR2) RETURN VARCHAR2; PROCEDURE getAllAttributes(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, attributes IN OUT NOCOPY CLOB); --AUDIO PROCESSING METHODS FUNCTION processCommand(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio, cmd IN VARCHAR2, arguments IN VARHAR2, result OUT RAW) RETURN RAW; PRAGMA RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getEncoding, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getNumberOfChennels, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getSamplingRate, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getSampleSize, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getCompressionType, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getAttribute, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getAudioDuration, WNDS, WNPS, RNDS, RNPS); END; /
Table 3-2 shows the methods supported in the
ORDPLUGINS.ORDX_AUFF_AUDIO package and the exceptions raised if you call a method that is not supported.
The ORDPLUGINS.ORDX_AIFF_AUDIO package is provided and is used for the AIFF audio format specification.
CREATE OR REPLACE PACKAGE ORDX_AIFF_AUDIO authid current_user AS --AUDIO ATTRIBUTES ACCESSORS FUNCTION getFormat(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getEncoding(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getNumberOfChannels(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getSamplingRate(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getSampleSize(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getCompressionType(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getAudioDuration(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio); FUNCTION checkProperties(ctx IN OUT RAW, obj IN OUT ORDSYS.ORDAudio) RETURN NUMBER; FUNCTION getAttribute(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, name IN VARCHAR2) RETURN VARCHAR2; PROCEDURE getAllAttributes(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, attributes IN OUT NOCOPY CLOB); --AUDIO PROCESSING METHODS FUNCTION processCommand(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio, cmd IN VARCHAR2, arguments IN VARHAR2, result OUT RAW) RETURN RAW; PRAGMA RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getEncoding, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getNumberOfChennels, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getSamplingRate, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getSampleSize, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getCompressionType, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getAttribute, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getAudioDuration, WNDS, WNPS, RNDS, RNPS); END; /
Table 3-3 shows the methods supported in the
ORDPLUGINS.ORDX_AIFF_AUDIO package and the exceptions raised if you call a method that is not supported.
The ORDPLUGINS.ORDX_AIFC_AUDIO package is provided and is used for the AIFC audio format specification.
CREATE OR REPLACE PACKAGE ORDX_AIFC_AUDIO authid current_user AS --AUDIO ATTRIBUTES ACCESSORS FUNCTION getFormat(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getEncoding(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getNumberOfChannels(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getSamplingRate(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getSampleSize(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getCompressionType(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getAudioDuration(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio); FUNCTION checkProperties(ctx IN OUT RAW, obj IN OUT ORDSYS.ORDAudio) RETURN NUMBER; FUNCTION getAttribute(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, name IN VARCHAR2) RETURN VARCHAR2; PROCEDURE getAllAttributes(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, attributes IN OUT NOCOPY CLOB); --AUDIO PROCESSING METHODS FUNCTION processCommand(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio, cmd IN VARCHAR2, arguments IN VARHAR2, result OUT RAW) RETURN RAW; PRAGMA RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getEncoding, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getNumberOfChennels, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getSamplingRate, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getSampleSize, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getCompressionType, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getAttribute, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getAudioDuration, WNDS, WNPS, RNDS, RNPS); END; /
Table 3-4 shows the methods supported in the
ORDPLUGINS.ORDX_AIFC_AUDIO package and the exceptions raised if you call a method that is not supported.
The ORDPLUGINS.ORDX_WAVE_AUDIO package is provided and is used for the WAVE audio format specification.
CREATE OR REPLACE PACKAGE ORDX_WAVE_AUDIO authid current_user AS --AUDIO ATTRIBUTES ACCESSORS FUNCTION getFormat(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getEncoding(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getNumberOfChannels(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getSamplingRate(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getSampleSize(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; FUNCTION getCompressionType(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2; FUNCTION getAudioDuration(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER; PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio); FUNCTION checkProperties(ctx IN OUT RAW, obj IN OUT ORDSYS.ORDAudio) RETURN NUMBER; FUNCTION getAttribute(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, name IN VARCHAR2) RETURN VARCHAR2; PROCEDURE getAllAttributes(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, attributes IN OUT NOCOPY CLOB); --AUDIO PROCESSING METHODS FUNCTION processCommand(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio, cmd IN VARCHAR2, arguments IN VARHAR2, result OUT RAW) RETURN RAW; PRAGMA RESTRICT_REFERENCES(getFormat, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getEncoding, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getNumberOfChennels, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getSamplingRate, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getSampleSize, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getCompressionType, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getAttribute, WNDS, WNPS, RNDS, RNPS); PRAGMA RESTRICT_REFERENCES(getAudioDuration, WNDS, WNPS, RNDS, RNPS); END; /
Table 3-5 shows the methods supported in the
ORDPLUGINS.ORDX_WAVE_AUDIO package and the exceptions raised if you call a method that is not supported.
Extending interMedia to support a new audio data format consists of four steps:
Section 2.1.14 briefly describes how to extend interMedia to support a new audio data format and describes the interface. A package body listing is provided in Example 3-1 to assist you in this operation. Add your variables to the places that say "--Your variables go here" and add your code to the places that say "--Your code goes here".
See Section E.1 for more information on installing your own audio format plug-in and running the sample scripts provided.
CREATE OR REPLACE PACKAGE BODY ORDX_MY_AUDIO AS --AUDIO ATTRIBUTES ACCESSORS FUNCTION getFormat(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2 IS --Your variables go here BEGIN --Your code goes here END; FUNCTION getEncoding(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2 IS --Your variables go here BEGIN --Your code goes here END; FUNCTION getNumberOfChannels(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER IS --Your variables go here BEGIN --Your code goes here END; FUNCTION getSamplingRate(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER IS --Your variables go here BEGIN --Your code goes here END; FUNCTION getSampleSize(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER IS --Your variables go here BEGIN --Your code goes here END; FUNCTION getCompressionType(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN VARCHAR2 IS --Your variables go here BEGIN --Your code goes here END; FUNCTION getAudioDuration(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio) RETURN INTEGER IS --Your variables go here BEGIN --Your code goes here END; PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio) IS --Your variables go here BEGIN --Your code goes here END; FUNCTION checkProperties(ctx IN OUT RAW, obj IN OUT ORDSYS.ORDAudio) RETURN NUMBER IS --Your variables go here BEGIN --Your code goes here END; FUNCTION getAttribute(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, name IN VARCHAR2) RETURN VARCHAR2 IS --Your variables go here BEGIN --Your code goes here END; PROCEDURE getAllAttributes(ctx IN OUT RAW, obj IN ORDSYS.ORDAudio, attributes IN OUT NOCOPY CLOB) IS --Your variables go here BEGIN --Your code goes here END; -- AUDIO PROCESSING METHODS FUNCTION processCommand( ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio, cmd IN VARCHAR2, arguments IN VARCHAR2, result OUT RAW) RETURN RAW IS --Your variables go here BEGIN --Your code goes here END; END; / show errors;