FROM_VECTOR

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

目的

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

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

オプションで、トークンSPARSEまたはDENSEを使用してFORMAT句で出力のテキスト形式を指定できます。なお、入力ベクトル格納形式は、指定された出力形式と一致する必要はありません。

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.
SELECT FROM_VECTOR(TO_VECTOR('[5,[2,4],[1.0,2.0]]', 5, FLOAT64, SPARSE) RETURNING CLOB FORMAT SPARSE);

FROM_VECTOR(TO_VECTOR('[5,[2,4],[1.0,2.0]]',5,FLOAT64,SPARSE)RETURNINGCLOBFORMAT
--------------------------------------------------------------------------------
[5,[2,4],[1.0E+000,2.0E+000]]

1 row selected.
SELECT FROM_VECTOR(TO_VECTOR('[5,[2,4],[1.0,2.0]]', 5, FLOAT64, SPARSE) RETURNING CLOB FORMAT DENSE);

FROM_VECTOR(TO_VECTOR('[5,[2,4],[1.0,2.0]]',5,FLOAT64,SPARSE)RETURNINGCLOBFORMAT
--------------------------------------------------------------------------------
[0,1.0E+000,0,2.0E+000,0]

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;