FROM_VECTOR

FROM_VECTORは、入力としてベクトルを取得し、出力としてVARCHAR2またはCLOB型の文字列を返します。

用途

FROM_VECTORでは、オプションでRETURNING句を使用して、戻り値のデータ型を指定します。

サイズを指定せずにVARCHAR2を指定すると、返される値サイズのサイズは32767になります。

SQLでは、オプションで、入力ベクトルの格納形式をFORMAT句(トークンSPARSEまたはDENSEを使用)で指定できます。戻り値の格納形式はPL/SQLで指定できず、出力形式は入力ベクトルの格納形式によって判断されます。

CHARNCHARおよびNVARCHAR2への変換はサポートされません。

FROM_VECTORは、VECTOR_SERIALIZEと同義です。

パラメータ

exprはベクトルに評価される必要があります。このファンクションは、exprがNULLの場合はNULLを返します。

  • SELECT FROM_VECTOR(TO_VECTOR('[1, 2, 3]') );

    結果:

    FROM_VECTOR(TO_VECTOR('[1,2,3]'))
    
    –---------------------------------------------------------------
    [1.0E+000,2.0E+000,3.0E+000] 
    
    1 row selected.
  • SELECT FROM_VECTOR(TO_VECTOR('[1.1, 2.2, 3.3]', 3, FLOAT32) );

    結果:

    FROM_VECTOR(TO_VECTOR('[1.1,2.2,3.3]',3,FLOAT32))
    ------------------------------------------------------------------
    
    [1.10000002E+000,2.20000005E+000,3.29999995E+000] 
    
    1 row selected.
  • SELECT FROM_VECTOR( TO_VECTOR('[1.1, 2.2, 3.3]', 3, FLOAT32) RETURNING VARCHAR2(1000));

    結果:

    FROM_VECTOR(TO_VECTOR('[1.1,2.2,3.3]',3,FLOAT32)RETURNINGVARCHAR2(1000))
    --------------------------------------------------------------------------------
    
    [1.10000002E+000,2.20000005E+000,3.29999995E+000] 
    
    1 row selected.
  • SELECT FROM_VECTOR(TO_VECTOR('[1.1, 2.2, 3.3]', 3, FLOAT32) RETURNING CLOB );

    結果:

    FROM_VECTOR(TO_VECTOR('[1.1,2.2,3.3]',3,FLOAT32)RETURNINGCLOB)
    
    --------------------------------------------------------------------------------
    
    [1.10000002E+000,2.20000005E+000,3.29999995E+000] 
    
    1 row selected.

ノート:

  • 次の例に示すように、Oracle Client 23aiライブラリまたはThinモード・ドライバを使用するアプリケーションは、ベクトル・データを直接フェッチできます。

    SELECT dataVec FROM vecTab;
  • Oracle Database 23aiに接続された23aiより前のOracle Client 23aiライブラリを使用するアプリケーションの場合、次の例に示すように、FROM_VECTORを使用してベクトル・データをフェッチします。

    SELECT FROM_VECTOR(dataVec) FROM vecTab;