299 UTL Streamsタイプ

UTL Streamsタイプは、Oracle XML機能で使用される抽象タイプを記述します。

SYSスキーマ内に4つの抽象PL/SQLストリームが導入および定義されています。ストリームはPUBLICで参照でき、以降の項で説明します。

この章のトピックは、次のとおりです:

参照:

詳細は、『Oracle XML DB開発者ガイド』を参照してください。

299.1 UTL Streamsタイプのセキュリティ・モデル

UTL Streamsタイプに対するEXECUTEPUBLICに付与されます。

299.2 UTL Binary Streamsタイプの要約

この表は、UTL Binary Streamsタイプを示し、簡単に説明しています。

表299-1 UTL Streamsタイプ

タイプ 説明

UTL_BINARYINPUTSTREAMタイプ

バイトを読み取り、ストリームをクローズします。

UTL_BINARYOUTPUTSTREAMタイプ

バイトを書き込み、ストリームをクローズします。

UTL_CHARACTERINPUTSTREAMタイプ

文字を読み取り、ストリームをクローズします。

UTL_CHARACTEROUTPUTSTREAMタイプ

文字を書き込み、ストリームをクローズします。

299.2.1 UTL_BINARYINPUTSTREAMタイプ

このタイプは、ストリームの読取りとクローズのみを行うことができるという点で、java.io.InputStreamと似ています。

構文

CREATE OR REPLACE TYPE Utl_BinaryInputStream AS OBJECT (
   
   MEMBER FUNCTION available (
        self    IN OUT NOCOPY  Utl_BinaryInputStream) 
     RETURN INTEGER,
   
   MEMBER FUNCTION read (                                  -- #1
      self      IN OUT NOCOPY  Utl_BinaryInputStream,
      numBytes  IN             INTEGER DEFAULT 1)  
    RETURN RAW,
  
  MEMBER PROCEDURE read (                                  -- #2
     self       IN OUT NOCOPY   Utl_BinaryInputStream, 
     bytes      IN OUT NOCOPY  RAW, 
     numBytes   IN OUT         INTEGER),
  
  MEMBER PROCEDURE read (                                  -- #3
     self       IN OUT NOCOPY   Utl_BinaryInputStream, 
     bytes      IN OUT NOCOPY   RAW,
     offset     IN INTEGER, 
     numBytes   IN OUT          INTEGER),

  member function close (
     self       In Out Nocopy   Utl_BinaryInputStream) 

 ) NOT FINAL;

属性

表299-2 UTL_BINARYINPUTSTREAMタイプのメンバー・サブプログラム

メンバー・サブプログラム 説明

AVAILABLE

読取り可能なバイト数を戻します。

READ

  • #1 - numBytesによって指定されたバイト数(デフォルトは1)を読み取り、バイトをRAWとして戻します。残っているバイトがない場合、値NULLが戻されます。

  • #2 - numBytesで指定されたバイト数をパラメータbytesに読み込みます。また、実際に読み取られたバイト数が、パラメータnumBytesに戻されます。このパラメータが0に設定されている場合、それ以上読み取るバイトはありません。

  • #3 - numBytesで指定されたバイト数をパラメータbytesに読み込みます。パラメータoffsetによって指定されたオフセット位置から開始します。実際に読み取られたバイト数が、パラメータnumBytesに戻されます。この値が0の場合、それ以上読み取るバイトはありません。

CLOSE

ストリームをサポートするためにノードに保持されているすべてのリソースを解放します。

299.2.2 UTL_BINARYOUTPUTSTREAMタイプ

このタイプは、ストリームの書込みとクローズのみを行うことができるという点で、java.io.OutputStreamと似ています。

構文

CREATE OR REPLACE TYPE Utl_BinaryOutputStream AS OBJECT (
     
  MEMBER FUNCTION write (                                  -- #1
       self       IN OUT NOCOPY   sys.utl_BinaryOutputStream, 
       bytes      IN              RAW,
       numBytes   IN              INTEGER DEFAULT 1) 
  RETURN INTEGER,
 
  MEMBER PROCEDURE write (                                  -- #2
       self       IN OUT NOCOPY  sys.utl_BinaryOutputStream,  
       bytes      IN NOCOPY      RAW,
       numBytes   IN OUT         INTEGER),
 
  MEMBER PROCEDURE write (                                  -- #3
       self       IN OUT NOCOPY  utl_BinaryOutputStream,        bytes      IN NOCOPY      RAW, 
       offset     IN             INTEGER,
       numBytes   IN OUT         INTEGER),
 
  MEMBER PROCEDURE flush (
       self       IN OUT NOCOPY  utl_BinaryOutputStream),
 
  MEMBER PROCEDURE close (
       self       IN OUT NOCOPY utl_BinaryOutputStream)
 
 ) NOT FINAL;

属性

表299-3 UTL_BINARYOUTPUTSTREAMタイプのメンバー・サブプログラム

メンバー・サブプログラム 説明

WRITE

  • #1 - RAWからnumBytesによって指定されたバイト数(デフォルトは1)をストリームに書き込みます。実際に書き込まれたバイト数が戻されます。

  • #2 - パラメータbytesからパラメータnumBytesで指定されたバイト数をストリームに書き込みます。実際に書き込まれたバイト数は、パラメータnumBytesに戻されます。

  • #3 - numBytesによって指定されたバイト数をストリームに書き込みます。パラメータoffsetによって指定されたオフセット位置から開始します。実際に書き込まれたバイト数は、パラメータnumBytesに戻されます。

FLUSH

バッファに入れたすべてのバイトを宛先ノードに確実にコピーします。

CLOSE

ストリームに関連付けられたすべてのリソースを解放します。

299.2.3 UTL_CHARACTERINPUTSTREAMタイプ

このタイプは、文字(chars)の読取りとストリームのクローズのみを行うことができるという点で、java.io.Readerと似ています。

構文

CREATE OR REPLACE TYPE Utl_CharacterInputStream AS OBJECT (

   MEMBER FUNCTION available (
       self       IN OUT NOCOPY   utl_CharacterInputStream)     
   RETURN INTEGER,   

   MEMBER FUNCTION read (                                   -- #1
       self       IN OUT NOCOPY   utl_CharacterInputStream,       
       numChars   IN              INTEGER DEFAULT 1,
       lineFeed   IN              BOOLEAN DEFAULT FALSE)
   RETURN VARCHAR2,
   
   MEMBER PROCEDURE read (                                  -- #2
       self       IN OUT NOCOPY    utl_CharacterInputStream,
       chars      IN OUT NOCOPY    VARCHAR2,
       numChars   IN OUT           INTEGER,
       lineFeed   IN BOOLEAN DEFAULT FALSE),

   MEMBER PROCEDURE read (                                  -- #3
       self       IN OUT NOCOPY   utl_CharacterInputStream,
       chars      IN OUT NOCOPY    VARCHAR2,
       offset     IN               INTEGER,
       numChars   IN OUT           INTEGER,
       lineFeed   IN               BOOLEAN DEFAULT FALSE),

   MEMBER PROCEDURE close (
      self       IN OUT NOCOPY    utl_CharacterInputStream)  
) NOT FINAL;

属性

表299-4 UTL_CHARACTERINPUTSTREAMタイプのメンバー・サブプログラム

メンバー・サブプログラム 説明

AVAILABLE

読取り可能なバイト数を戻します。

READ

  • #1 - 残りの読取り対象の文字数を戻します。

  • #2 - numCharsによって指定された文字数(デフォルト値は1)を読み取り、文字をVARCHAR2として戻します。lineFeedの値がtrueの場合(デフォルト値はFALSE)、改行文字が見つかると読取りが中止されます。残っている文字がない場合、値NULLが戻されます。

  • #3 - パラメータnumCharsによって指定された文字数をパラメータcharsに読み込みます。また、実際に読み取られた文字数が、パラメータnumCharsに戻されます。この値が0の場合、それ以上読み取る文字はありません。lineFeedの値がTRUEの場合(デフォルトはFALSE)、改行文字が見つかると読取りが中止されます。

CLOSE

ストリームによって保持されているすべてのリソースを解放します。

299.2.4 UTL_CHARACTEROUTPUTSTREAMタイプ

このタイプは、文字(chars)の読取りとストリームのクローズのみを行うことができるという点で、java.io.Readerと似ています。

構文

CREATE OR REPLACE TYPE utl_CharacterOutputStream  AS OBJECT (

 MEMBER FUNCTION write (                                  -- #1
     self      IN OUT NOCOPY   utl_CharacterOutputStream, 
     chars     IN              VARCHAR2,
     numChars  IN              INTEGER DEFAULT 1,
     lineFeed  IN              BOOLEAN DEFAULT FALSE) 
  RETURN INTEGER,

 MEMBER PROCEDURE write (                                  -- #2
     self      IN OUT NOCOPY   utl_CharacterOutputStream,  
     chars     IN OUT NOCOPY   VARCHAR2,
     numChars  IN OUT          INTEGER,
     lineFeed  IN              BOOLEAN DEFAULT FALSE),

 member procedure write (                                  -- #3
     self     IN OUT NOCOPY    utl_CharacterOutputStream, 
     chars    IN  NOCOPY       varchar2,
     offset   IN               integer, 
     numChars IN OUT           integer,
    lineFeed  IN               boolean default false),

 MEMBER PROCEDURE flush (
     self     IN OUT NOCOPY    utl_CharacterOutputStream), 

MEMBER PROCEDURE close (
     self     IN OUT NOCOPY utl_CharacterOutputStream)

 ) NOT FINAL;

属性

表299-5 UTL_CHARACTEROUTPUTSTREAMタイプのメンバー・サブプログラム

メンバー・サブプログラム 説明

WRITE

  • #1 - パラメータcharsからnumCharsによって指定された文字数(デフォルトは1)をストリームに書き込み、実際に書き込まれた文字数を戻します。lineFeedの値がTRUEの場合(デフォルトはFALSE)、最後の文字の後にlineFeed文字が挿入されます。

  • #2 - パラメータcharsからパラメータnumCharsによって指定された文字数をストリームに書き込みます。実際に書き込まれた文字数が、パラメータnumCharsに戻されます。lineFeedの値がtrueの場合(デフォルトはFALSE)、最後の文字の後にlineFeed文字が挿入されます。

  • #3 - パラメータcharsから、パラメータnumCharsによって指定された文字数を書き込みます。パラメータoffsetによって指定されたオフセット位置から開始します。実際に書き込まれた文字数が、パラメータnumCharsに戻されます。lineFeedの値がtrueの場合(デフォルトはFALSE)、最後の文字の後にlineFeed文字が挿入されます。

FLUSH

バッファに含まれているすべての文字をノード値にコピーします。

CLOSE

ストリームによって保持されているすべてのリソースを解放します。