ラージ オブジェクトの値へのアクセス - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL外部ルーチン プログラミング

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/uhh1512082756414.ditamap
dita:ditavalPath
ja-JP/uhh1512082756414.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage
Teradataには、ラージ オブジェクトの値にアクセスするためのライブラリ関数として、次のものが用意されています。
  • FNC_LobOpen
  • FNC_LobRead
  • FNC_LobClose

ラージ オブジェクトの値にアクセスするには、次のようにします。

  1. FNC_LobOpenを呼び出して、ラージ オブジェクトのための読み取りコンテキストを確立します。

    FNC_LobOpenは、ラージ オブジェクトの読み取りコンテキスト ハンドルをLOB_CONTEXT_ID型の出力引数に入れて戻します。sqltypes_td.hヘッダー ファイルの中でLOB_CONTEXT_IDは、次のように定義されています。

    typedef long LOB_CONTEXT_ID;

  2. FNC_LobReadを呼び出してラージ オブジェクトを読み、データをBYTEバッファに入れます。

    FNC_LobReadの入力引数の1つは、FNC_LobOpenから戻された読み取りコンテキスト ハンドルです。

  3. FNC_Closeを呼び出して、読み取りコンテキストに関連するすべてのリソースを解放します。

各関数の詳細については、Cライブラリ関数を参照してください。

ラージ オブジェクトの値のアクセス方法を示すコードの一部を、以下に示します。

#define BUFFER_SIZE 500
   
void do_something ( LOB_LOCATOR *a,
                    LOB_RESULT_LOCATOR *result,
                    char sqlstate[6] )
{
   BYTE            buffer[BUFFER_SIZE];
   FNC_LobLength_t actlen;
   LOB_CONTEXT_ID  id;

   /* Establish a read context for the LOB input argument */
   FNC_LobOpen(*a, &id, 0, BUFFER_SIZE);
   
   /* Read the LOB and place the data into a BYTE buffer */
   FNC_LobRead(id, buffer, BUFFER_SIZE, &actlen);
   
   /* Release the resources associated with the read context */
   FNC_LobClose(id);
   
    ...
  
}

完全な例については、LOBを使用するCスカラー関数を参照してください。