B Oracle Multimediaの拡張
この付録では、Oracle Multimediaオブジェクト型を拡張するための様々な方法について説明します。
Oracle Multimediaオブジェクト型を拡張し、次の機能をサポートできます。
-
現在サポートされていないその他の外部ソースのメディア・データ
-
現在サポートされていないその他のメディア・データ・フォーマット
-
メディア(オーディオおよびビデオ)データの処理
独自の外部メディア・データ・ソースや独自のORDAudio、ORDVideoまたはORDDocデータ・フォーマットをサポートするには、次の作業を行う必要があります。
-
新しいデータ・ソースあるいは新しいORDAudio、ORDVideoまたはORDDocデータ・フォーマットを設計します。
-
新しいデータ・ソースあるいは新しいORDAudio、ORDVideoまたはORDDocデータ・フォーマットを実装します。
-
新しいソース・パッケージを
ORDPLUGINS
スキーマにインストールします。 -
新しいソース・パッケージに対するEXECUTE権限を
PUBLIC
に付与します。
この付録の内容は次のとおりです。
B.1 その他の外部ソースのサポート
新しいソース・パッケージを実装することで、新しい外部データ・ソースをサポートするようにOracle Multimediaオブジェクト型を拡張できます。
新しいデータ・ソースを実装するには、ORDPLUGINS
スキーマ内のORDX_<srcType>_SOURCE
パッケージに必要なインタフェースを実装します(<srcType>
は、新しい外部ソース・タイプの名前です)。「Oracle Multimediaの拡張による新しいデータ・ソースのサポート」で示されているパッケージ本体の例をテンプレートとして使用して、パッケージ本体を作成します。その後、setSourceInformation( )コールのソース・タイプ・パラメータに適切なソース値を設定して、ORDAudio、ORDImage、ORDDocまたはORDVideoオブジェクトに対し、ORDPLUGINS.ORDX_<srcType>_SOURCE
パッケージを使用する必要があることを示します。他の外部オーディオ、イメージ、ビデオまたはその他の異機種間メディア・データ・ソースをサポートするように拡張する場合は、ORDPLUGINS.ORDX_FILE_SOURCE
およびORDPLUGINS.ORDX_HTTP_SOURCE
パッケージを指針として使用します。
次のサブセクションでは、事前定義済およびユーザー定義のパッケージに関するリファレンス情報を示します。
B.1.1 外部ソース・パッケージ
自分のPL/SQLパッケージにORDX_<name>_<module_name>という名前を付けます。ここで、<module_name>はORDSourceのSOURCEです。ORDPLUGINS.ORDX_FILE_SOURCE
およびORDPLUGINS.ORDX_HTTP_SOURCE
パッケージを、新しいソース・タイプ・パッケージを開発する際の指針として使用します。
たとえば、ORDPLUGINS.ORDX_FILE_SOURCEパッケージで示されているFILEソース・タイプ・パッケージの名前はORDX_FILE_SOURCE、ORDPLUGINS.ORDX_HTTP_SOURCEパッケージで示されているHTTPソース・タイプ・パッケージの名前はORDX_HTTP_SOURCEで、<name>はソース・タイプです。ソース・タイプ名FILEおよびHTTPはどちらもOracle用に予約されています。
次の各項では、オーディオ、イメージ、ビデオまたはその他の異機種間メディア・データのサポートされる外部ソースの拡張に関する例と詳細情報を示します。
B.1.1.1 ORDPLUGINS.ORDX_FILE_SOURCEパッケージ
ORDPLUGINS.ORDX_FILE_SOURCE
パッケージは、データベース外部のローカル・ファイル・システムに格納されたマルチメディアをサポートします。
ORDPLUGINS.ORDX_FILE_SOURCE
パッケージは、次のように定義されます。
CREATE OR REPLACE PACKAGE ORDX_FILE_SOURCE AS -- functions/procedures FUNCTION processCommand(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, cmd IN VARCHAR2, arglist IN VARCHAR2, result OUT RAW) RETURN RAW; PROCEDURE import(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, mimetype OUT VARCHAR2, format OUT VARCHAR2); PROCEDURE import(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, dlob IN OUT NOCOPY BLOB, mimetype OUT VARCHAR2, format OUT VARCHAR2); PROCEDURE importFrom(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, mimetype OUT VARCHAR2, format OUT VARCHAR2, loc IN VARCHAR2, name IN VARCHAR2); PROCEDURE importFrom(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, dlob IN OUT NOCOPY BLOB, mimetype OUT VARCHAR2, format OUT VARCHAR2, loc IN VARCHAR2, name IN VARCHAR2); PROCEDURE export(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, slob IN OUT NOCOPY BLOB, loc IN VARCHAR2, name IN VARCHAR2); FUNCTION getContentLength(obj IN ORDSYS.ORDSource, ctx IN OUT RAW), RETURN INTEGER; PRAGMA RESTRICT_REFERENCES(getContentLength, WNDS, WNPS, RNDS, RNPS); FUNCTION getSourceAddress(obj IN ORDSYS.ORDSource, ctx IN OUT RAW, userData IN VARCHAR2) RETURN VARCHAR2; PRAGMA RESTRICT_REFERENCES(getSourceAddress, WNDS, WNPS, RNDS, RNPS); FUNCTION open(obj IN OUT NOCOPY ORDSYS.ORDSource, userArg IN RAW, ctx OUT RAW) RETURN INTEGER; FUNCTION close(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW) RETURN INTEGER; FUNCTION trim(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, newlen IN INTEGER) RETURN INTEGER; PROCEDURE read(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, startPos IN INTEGER, numBytes IN OUT INTEGER, buffer OUT RAW); PROCEDURE write(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, startPos IN INTEGER, numBytes IN OUT INTEGER, buffer OUT RAW); END ORDX_FILE_SOURCE; /
表B-1に、ORDX_FILE_SOURCE
パッケージでサポートされるメソッド、およびサポートされていないメソッドをコールした場合に発生する例外を示します。
表B-1 ORDPLUGINS.ORDX_FILE_SOURCEパッケージでサポートされるメソッド
メソッド名 | サポート・レベル |
---|---|
processCommand |
非サポート。METHOD_NOT_SUPPORTED例外が発生します。 |
import |
サポートされている |
import |
Supported |
importFrom |
Supported |
importFrom |
Supported |
export |
Supported |
getContentLength |
Supported |
getSourceAddress |
Supported |
open |
Supported |
close |
Supported |
trim |
非サポート。METHOD_NOT_SUPPORTED例外が発生します。 |
read |
Supported |
write |
非サポート。METHOD_NOT_SUPPORTED例外が発生します。 |
B.1.1.2 ORDPLUGINS.ORDX_HTTP_SOURCEパッケージ
ORDPLUGINS.ORDX_HTTP_SOURCE
パッケージは、HTTPサーバーに格納されURLによってアクセスされるマルチメディアをサポートします。
ORDPLUGINS.ORDX_HTTP_SOURCE
パッケージは、次のように定義されます。
CREATE OR REPLACE PACKAGE ORDX_HTTP_SOURCE AS -- functions/procedures FUNCTION processCommand(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, cmd IN VARCHAR2, arglist IN VARCHAR2, result OUT RAW) RETURN RAW; PROCEDURE import(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, mimetype OUT VARCHAR2, format OUT VARCHAR2); PROCEDURE import(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, dlob IN OUT NOCOPY BLOB, mimetype OUT VARCHAR2, format OUT VARCHAR2); PROCEDURE importFrom(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, mimetype OUT VARCHAR2, format OUT VARCHAR2, loc IN VARCHAR2, name IN VARCHAR2); PROCEDURE importFrom(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, dlob IN OUT NOCOPY BLOB, mimetype OUT VARCHAR2, format OUT VARCHAR2, loc IN VARCHAR2, name IN VARCHAR2); PROCEDURE export(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, dlob IN OUT NOCOPY BLOB, loc IN VARCHAR2, name IN VARCHAR2); FUNCTION getContentLength(obj IN ORDSYS.ORDSource, ctx IN OUT RAW) RETURN INTEGER; PRAGMA RESTRICT_REFERENCES(getContentLength, WNDS, WNPS, RNDS, RNPS, TRUST); FUNCTION getSourceAddress(obj IN ORDSYS.ORDSource, ctx IN OUT RAW, userData IN VARCHAR2) RETURN VARCHAR2; PRAGMA RESTRICT_REFERENCES(getSourceAddress, WNDS, WNPS, RNDS, RNPS); FUNCTION open(obj IN OUT NOCOPY ORDSYS.ORDSource, userArg IN RAW, ctx OUT RAW) RETURN INTEGER; FUNCTION close(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW) RETURN INTEGER; FUNCTION trim(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, newlen IN INTEGER) RETURN INTEGER; PROCEDURE read(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, startPos IN INTEGER, numBytes IN OUT INTEGER, buffer OUT RAW); PROCEDURE write(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, startPos IN INTEGER, numBytes IN OUT INTEGER, buffer OUT RAW); END ORDX_HTTP_SOURCE; /
表B-2に、ORDX_HTTP_SOURCE
パッケージでサポートされるメソッド、およびサポートされていないメソッドをコールした場合に発生する例外を示します。
表B-2 ORDPLUGINS.ORDX_HTTP_SOURCEパッケージでサポートされるメソッド
メソッド名 | サポート・レベル |
---|---|
processCommand |
非サポート。METHOD_NOT_SUPPORTED例外が発生します。 |
import |
Supported |
import |
Supported |
importFrom |
Supported |
importFrom |
Supported |
export |
非サポート。METHOD_NOT_SUPPORTED例外が発生します。 |
getContentLength |
Supported |
getSourceAddress |
Supported |
open |
Supported |
close |
Supported |
trim |
非サポート。METHOD_NOT_SUPPORTED例外が発生します。 |
read |
非サポート。METHOD_NOT_SUPPORTED例外が発生します。 |
write |
非サポート。METHOD_NOT_SUPPORTED例外が発生します。 |
B.1.1.3 Oracle Multimediaの拡張による新しいデータ・ソースのサポート
Oracle Multimediaを拡張して新しいデータ・ソースをサポートするには、一連のタスクを実行する必要があります。
新しいデータ・ソースをサポートするようにOracle Multimediaを拡張するには、次の手順を実行します。
- 新しいデータ・ソースを設計します。
- 新しいデータ・ソースを実装し、名前(
ORDX_MY_SOURCE.SQL
など)を付けます。 - 新しい
ORDX_MY_SOURCE.SQL
パッケージをORDPLUGINS
スキーマにインストールします。 - 新しいパッケージ(
ORDX_MY_SOURCE.SQL
など)に対するEXECUTE権限をPUBLICに付与します。 - srctypeを
my
に設定して、パッケージが起動されるようにします。
例B-1 新しいデータ・ソースを拡張サポートするためのパッケージ本体
CREATE OR REPLACE PACKAGE BODY ORDX_MY_SOURCE AS -- functions/procedures FUNCTION processCommand( obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, cmd IN VARCHAR2, arglist IN VARCHAR2, result OUT RAW) RETURN RAW IS --Your variables go here. BEGIN --Your code goes here. END processCommand; PROCEDURE import( obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, mimetype OUT VARCHAR2, format OUT VARCHAR2) IS --Your variables go here. BEGIN --Your code goes here. END import; PROCEDURE import( obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, dlob IN OUT NOCOPY BLOB, mimetype OUT VARCHAR2, format OUT VARCHAR2) IS --Your variables go here. BEGIN --Your code goes here. END import; PROCEDURE importFrom( obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, mimetype OUT VARCHAR2, format OUT VARCHAR2, loc IN VARCHAR2, name IN VARCHAR2) IS --Your variables go here. BEGIN --Your code goes here. END importFrom; PROCEDURE importFrom( obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, dlob IN OUT NOCOPY BLOB, mimetype OUT VARCHAR2, format OUT VARCHAR2, loc IN VARCHAR2, name IN VARCHAR2) IS --Your variables go here. BEGIN --Your code goes here. END importFrom; PROCEDURE export( obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, slob IN OUT NOCOPY BLOB, loc IN VARCHAR2, name IN VARCHAR2) IS --Your variables go here. BEGIN --Your code goes here. END export; FUNCTION getContentLength( obj IN ORDSYS.ORDSource, ctx IN OUT RAW) RETURN INTEGER IS --Your variables go here. BEGIN --Your code goes here. END getContentLength; FUNCTION getSourceAddress(obj IN ORDSYS.ORDSource, ctx IN OUT RAW, userData IN VARCHAR2) RETURN VARCHAR2 IS --Your variables go here. BEGIN --Your code goes here. END getSourceAddress; FUNCTION open(obj IN OUT NOCOPY ORDSYS.ORDSource, userArg IN RAW, ctx OUT RAW) RETURN INTEGER IS --Your variables go here. BEGIN --Your code goes here. END open; FUNCTION close(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW) RETURN INTEGER IS --Your variables go here. BEGIN --Your code goes here. END close; FUNCTION trim(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, newlen IN INTEGER) RETURN INTEGER IS --Your variables go here. BEGIN --Your code goes here. END trim; PROCEDURE read(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, startPos IN INTEGER, numBytes IN OUT INTEGER, buffer OUT RAW) IS --Your variables go here. BEGIN --Your code goes here. END read; PROCEDURE write(obj IN OUT NOCOPY ORDSYS.ORDSource, ctx IN OUT RAW, startPos IN INTEGER, numBytes IN OUT INTEGER, buffer OUT RAW) IS --Your variables go here. BEGIN --Your code goes here. END write; END ORDX_MY_SOURCE; / show errors;
この操作を支援するためのパッケージ本体のリストが例B-1で提供されています。"--Your variables go here"と記載されている場所に変数を追加し、"--Your code goes here"と記載されている場所にコードを追加します。
B.2 その他のメディア・データ・フォーマットのサポート
新しいフォーマット・パッケージを定義することにより、ORDAudio、ORDDocおよびORDVideoオブジェクト型のサポートを拡張して新しいメディア・データ・フォーマットを含めることができます。
新しいORDAudio、ORDDocまたはORDVideoデータ・フォーマットを実装するには、ORDPLUGINS
スキーマ内のORDPLUGINS.ORDX_<format>_<media>
パッケージに必要なインタフェースを実装します(<format>
は新しいオーディオまたはビデオの名前、あるいはその他の異機種間メディア・データ・フォーマットであり、<media>
はメディアの種類(AUDIO、VIDEOまたはDOC)です)。その他のオーディオまたはビデオ・データ・フォーマットあるいは異機種間メディア・データ・フォーマットにサポートを拡張する場合は、ORDPLUGINS.ORDX_DEFAULT_<media>
パッケージを指針として使用します。「Oracle Multimediaの拡張による新しいオーディオ・データ・フォーマットのサポート」、「Oracle Multimediaの拡張による新しいORDDocデータ・フォーマットのサポート」および「Oracle Multimediaの拡張による新しいビデオ・データ・フォーマットのサポート」で示されているパッケージ本体の例をテンプレートとして使用して、それぞれオーディオ、ビデオまたはその他の異機種間メディア・データのパッケージ本体を作成します。その後、setFormat( )コールの新しいフォーマット・パラメータに適切なフォーマット値を設定して、ORDAudio、ORDDocまたはORDVideoオブジェクトに対して、パッケージORDPLUGINS.ORDX_<format>_<media>
をメソッドの起動に使用する必要があることを示します。
次の各項では、他のデータ・フォーマットをサポートするようにOracle Multimediaを拡張する方法について説明します。
B.2.1 その他のORDAudioデータ・フォーマットのサポート
次の各項では、他のデータ・フォーマットをサポートするようにORDAudioを拡張する方法について説明します。
B.2.1.1 ORDPLUGINS.ORDX_DEFAULT_AUDIOパッケージ
ORDPLUGINS.ORDX_DEFAULT_AUDIO
パッケージを、独自のORDPLUGINS.ORDX_<format>_AUDIO
オーディオ・フォーマット・パッケージを開発する際の指針として使用します。このパッケージでは、setProperties( )メソッドのmimeType
フィールドにファイル・フォーマットに依存するMIMEタイプ値を設定します。
ORDPLUGINS.ORDX_DEFAULT_AUDIO
パッケージは、次のように定義されます。
CREATE OR REPLACE PACKAGE ORDX_DEFAULT_AUDIO authid current_user AS --AUDIO ATTRIBUTES ACCESSORS PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio, setComments IN NUMBER := 0); 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; END; /
表B-3に、ORDPLUGINS.ORDX_DEFAULT_AUDIO
パッケージでサポートされるメソッド、およびサポートされていないメソッドをコールした場合に発生する例外を示します。
表B-3 ORDPLUGINS.ORDX_DEFAULT_AUDIOパッケージでサポートされるメソッド
メソッド名 | サポート・レベル |
---|---|
setProperties |
サポート。ソースがローカルの場合、ローカル・データから属性を抽出してプロパティを設定します。ソースが |
checkProperties |
サポート。ソースがローカルの場合、ローカル・データから属性を抽出してオブジェクトの属性値と比較します。ソースが |
getAttribute |
非サポート。METHOD_NOT_SUPPORTEDおよびAUDIO_PLUGIN_EXCEPTION例外が発生します。 |
getAllAttributes |
サポート。ソースがローカルの場合、属性を取得して戻します。ソースが |
processCommand |
非サポート。METHOD_NOT_SUPPORTEDおよびAUDIO_PLUGIN_EXCEPTION例外が発生します。 |
B.2.1.2 Oracle Multimediaの拡張による新しいオーディオ・データ・フォーマットのサポート
Oracle Multimediaを拡張して新しいオーディオ・データ・フォーマットをサポートするには、一連のタスクを実行する必要があります。
新しいオーディオ・データ・フォーマットをサポートするようにOracle Multimediaを拡張するには、次の手順を実行します。
-
新しいオーディオ・データ・フォーマットを設計します。
-
新しいオーディオ・データ・フォーマットをサポートするには、
ORDPLUGINS
スキーマ内のORDX_<format>_AUDIO
パッケージに必要なインタフェースを実装します(<format>
は、新しいオーディオ・データ・フォーマット名です)。例B-2のパッケージ本体の例をテンプレートとして使用し、オーディオ・パッケージ本体を作成します。 -
その後、setFormat( )コール内の新しいフォーマット・パラメータに適切なフォーマット値を設定して、オーディオ・オブジェクトに対し、
ORDPLUGINS.ORDX_<format>_AUDIO
パッケージをコールする必要があることを示します。
-
-
新しいオーディオ・データ・ソースを実装し、名前(
ORDX_MY_AUDIO.SQL
など)を付けます。 -
新しい
ORDX_MY_AUDIO.SQL
パッケージをORDPLUGINS
スキーマにインストールします。 -
新しいパッケージ(
ORDX_MY_AUDIO
など)に対するEXECUTE権限をPUBLICに付与します。 -
アプリケーションで、format属性を
my
に設定してパッケージが起動されるようにします。
この操作を支援するためのパッケージ本体のリストが例B-2で提供されています。"--Your variables go here"と記載されている場所に変数を追加し、"--Your code goes here"と記載されている場所にコードを追加します。
例B-2 新しいオーディオ・データ・フォーマットを拡張サポートするためのパッケージ本体
CREATE OR REPLACE PACKAGE BODY ORDX_MY_AUDIO AS --AUDIO ATTRIBUTES ACCESSORS PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDAudio, setComments IN NUMBER :=0) 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;
B.2.2 その他のORDDocデータ・フォーマットのサポート
次の各項では、他のデータ・フォーマットをサポートするようにORDDocを拡張する方法について説明します。
B.2.2.1 ORDPLUGINS.ORDX_DEFAULT_DOCパッケージ
ORDPLUGINS.ORDX_DEFAULT_DOC
パッケージを、独自のORDPLUGINS.ORDX_<format>_DOC
メディア・フォーマット・パッケージを開発する際の指針として使用します。
ORDPLUGINS.ORDX_DEFAULT_DOC
パッケージは、次のように定義されます。
CREATE OR REPLACE PACKAGE ORDX_DEFAULT_DOC authid current_user AS PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDDoc, setComments IN NUMBER := 0); END; /
表B-4に、ORDPLUGINS.ORDX_DEFAULT_DOC
パッケージでサポートされるメソッド、およびソースがNULL
の場合に発生する例外を示します。
表B-4 ORDPLUGINS.ORDX_DEFAULT_DOCパッケージでサポートされるメソッド
メソッド名 | サポート・レベル |
---|---|
setProperties |
サポート。ソースがローカルの場合、ローカル・データから属性を抽出してプロパティを設定します。ソースが |
B.2.2.2 Oracle Multimediaの拡張による新しいORDDocデータ・フォーマットのサポート
Oracle Multimediaを拡張して新しいメディア・データ・フォーマットをサポートするには、一連のタスクを実行する必要があります。
新しいORDDocデータ・フォーマットをサポートするようにOracle Multimediaを拡張するには、次の手順を実行します。
-
新しいメディア・データ・フォーマットを設計します。
-
新しいメディア・データ・フォーマットをサポートするには、
ORDPLUGINS
スキーマ内のORDX_<format>_DOC
パッケージに必要なインタフェースを実装します(<format>
は、新しいメディア・データ・フォーマット名です)。例B-3のパッケージ本体の例をテンプレートとして使用し、パッケージ本体を作成します。 -
その後、setFormat( )コール内の新しいフォーマット・パラメータに適切なフォーマット値を設定して、メディア・オブジェクトに対し、
ORDPLUGINS.ORDX_<format>_DOC
パッケージをコールする必要があることを示します。
-
-
新しいメディア・データ・フォーマットを実装し、名前(
ORDX_MY_DOC.SQL
など)を付けます。 -
新しい
ORDX_MY_DOC.SQL
パッケージをORDPLUGINS
スキーマにインストールします。 -
新しいパッケージ(
ORDX_MY_DOC
など)に対するEXECUTE権限をPUBLICに付与します。 -
アプリケーションで、formatを
my
に設定してパッケージが起動されるようにします。
この操作を支援するためのパッケージ本体のリストが例B-3で提供されています。"--Your variables go here"と記載されている場所に変数を追加し、"--Your code goes here"と記載されている場所にコードを追加します。
例B-3 新しいORDDocデータ・フォーマットを拡張サポートするためのパッケージ本体
CREATE OR REPLACE PACKAGE BODY ORDX_MY_DOC AS --DOCUMENT ATTRIBUTES ACCESSORS PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDDoc, setComments IN NUMBER :=0) IS --Your variables go here. BEGIN --Your code goes here. END; END; / show errors;
B.2.3 その他のビデオ・データ・フォーマットのサポート
次の各項では、他のデータ・フォーマットをサポートするようにORDVideoを拡張する方法について説明します。
B.2.3.1 ORDPLUGINS.ORDX_DEFAULT_VIDEOパッケージ
ORDPLUGINS.ORDX_DEFAULT_VIDEO
パッケージを、独自のORDPLUGINS.ORDX_<format>_VIDEO
ビデオ・フォーマット・パッケージを開発する際の指針として使用します。このパッケージでは、setProperties( )メソッドのmimeType
フィールドにファイル・フォーマットに依存するMIMEタイプ値を設定します。
ORDPLUGINS.ORDX_DEFAULT_VIDEO
パッケージは、次のように定義されます。
CREATE OR REPLACE PACKAGE ORDX_DEFAULT_VIDEO authid current_user AS --VIDEO ATTRIBUTES ACCESSORS FUNCTION getAttribute(ctx IN OUT RAW, obj IN ORDSYS.ORDVideo, name IN VARCHAR2) RETURN VARCHAR2; PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDVideo, setComments IN NUMBER := 0); FUNCTION checkProperties(ctx IN OUT RAW,obj IN ORDSYS.ORDVideo) RETURN NUMBER; -- must return name=value; name=value; ... pairs PROCEDURE getAllAttributes(ctx IN OUT RAW, obj IN ORDSYS.ORDVideo, attributes IN OUT NOCOPY CLOB); -- VIDEO PROCESSING METHODS FUNCTION processCommand( ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDVideo, cmd IN VARCHAR2, arguments IN VARCHAR2, result OUT RAW) RETURN RAW; END; /
表B-5に、ORDPLUGINS.ORDX_DEFAULT_VIDEO
パッケージでサポートされるメソッド、およびサポートされていないメソッドをコールした場合に発生する例外を示します。
表B-5 ORDPLUGINS.ORDX_DEFAULT_VIDEOパッケージでサポートされるメソッド
メソッド名 | サポート・レベル |
---|---|
getAttribute |
非サポート。METHOD_NOT_SUPPORTEDおよびVIDEO_PLUGIN_EXCEPTION例外が発生します。 |
setProperties |
サポート。ソースがローカルの場合、ローカル・データから属性を抽出してプロパティを設定します。ソースが |
checkProperties |
サポート。ソースがローカルの場合、ローカル・データから属性を抽出してオブジェクトの属性値と比較します。ソースが |
getAllAttributes |
サポート。ソースがローカルの場合、属性を取得して戻します。ソースが |
processCommand |
非サポート。METHOD_NOT_SUPPORTEDおよびVIDEO_PLUGIN_EXCEPTION例外が発生します。 |
B.2.3.2 Oracle Multimediaの拡張による新しいビデオ・データ・フォーマットのサポート
Oracle Multimediaを拡張して新しいビデオ・データ・フォーマットをサポートするには、一連のタスクを実行する必要があります。
新しいビデオ・データ・フォーマットをサポートするようにOracle Multimediaを拡張するには、次の手順を実行します。
-
新しいビデオ・データ・フォーマットを設計します。
-
新しいビデオ・データ・フォーマットをサポートするには、
ORDPLUGINS
スキーマ内のORDX_<format>_VIDEO
パッケージに必要なインタフェースを実装します(<format>
は、新しいビデオ・データ・フォーマット名です)。例B-4のパッケージ本体の例をテンプレートとして使用し、ビデオ・パッケージ本体を作成します。 -
その後、setFormat( )コール内の新しいフォーマット・パラメータに適切なフォーマット値を設定して、ビデオ・オブジェクトに対し、
ORDPLUGINS.ORDX_<format>_VIDEO
パッケージをコールする必要があることを示します。
-
-
新しいビデオ・データ・フォーマットを実装し、名前(
ORDX_MY_VIDEO.SQL
など)を付けます。 -
新しい
ORDX_MY_VIDEO.SQL
パッケージをORDPLUGINS
スキーマにインストールします。 -
新しいパッケージ(
ORDX_MY_VIDEO
など)に対するEXECUTE権限をPUBLICに付与します。 -
アプリケーションで、ビデオ・フォーマットを
my
に設定してパッケージが起動されるようにします。
この操作を支援するためのパッケージ本体のリストが例B-4で提供されています。"--Your variables go here"と記載されている場所に変数を追加し、"--Your code goes here"と記載されている場所にコードを追加します。
例B-4 新しいビデオ・データ・フォーマットを拡張サポートするためのパッケージ本体
CREATE OR REPLACE PACKAGE BODY ORDX_MY_VIDEO AS --VIDEO ATTRIBUTES ACCESSORS FUNCTION getAttribute(ctx IN OUT RAW, obj IN ORDSYS.ORDVideo, name IN VARCHAR2) RETURN VARCHAR2 IS --Your variables go here. BEGIN --Your code goes here. END; PROCEDURE setProperties(ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDVideo, setComments IN NUMBER :=0) IS --Your variables go here. BEGIN --Your code goes here. END; FUNCTION checkProperties(ctx IN OUT RAW, obj IN ORDSYS.ORDVideo) RETURN NUMBER IS --Your variables go here. BEGIN --Your code goes here. END; PROCEDURE getAllAttributes(ctx IN OUT RAW, obj IN ORDSYS.ORDVideo, attributes IN OUT NOCOPY CLOB) IS --Your variables go here. BEGIN --Your code goes here. END; -- VIDEO PROCESSING METHODS FUNCTION processCommand( ctx IN OUT RAW, obj IN OUT NOCOPY ORDSYS.ORDVideo, 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;
B.2.4 その他のイメージ・データ・フォーマットのサポート
Oracle Multimediaでは、外部イメージ用のsetProperties( )メソッドを使用して、その他の特定イメージ・フォーマットをサポートします。
このメソッドを使用すると、setProperties( )メソッドに外部イメージ用として渡される値を既存のORDImageデータ属性に書き込むことによって、他のイメージ・フォーマットの認識が可能になります。
関連項目:
この方法でサポートされるイメージのタイプを判断する方法および詳細は、『Oracle Multimediaリファレンス』の外部イメージ・メソッド用のsetProperties( )に関する説明を参照してください
B.3 メディア・データ処理のサポート
Oracle Multimediaオーディオおよびビデオ・オブジェクト型のサポートを拡張して、オーディオおよびビデオ・データの処理を含めることができます。
次の各項で説明するように、Oracle Multimediaでは、オーディオおよびビデオ・オブジェク型を拡張して、オーディオおよびビデオ・データの処理をサポートできます。
B.3.1 オーディオ・データ処理のサポート
オーディオ・データ処理とは、オーディオ処理コマンドと一連の引数をフォーマット・パッケージに渡して処理することです。
オーディオ・データ処理をサポートするには、processAudioCommand( )メソッドを使用します。このメソッドは、ユーザー定義フォーマットのみで使用可能です。
関連項目:
processAudioCommand( )メソッドの詳細は、『Oracle Multimediaリファレンス』を参照してください
B.3.2 ビデオ・データ処理のサポート
ビデオ・データ処理とは、コマンドと一連の引数をフォーマット・パッケージに渡して処理することです。
ビデオ・データ処理をサポートするには、processVideoCommand( )メソッドを使用します。このメソッドは、ユーザー定義フォーマットでのみ使用可能です。
関連項目:
processVideoCommand( )メソッドの詳細は、『Oracle Multimediaリファレンス』を参照してください