FROM_VECTOR
FROM_VECTORは、入力としてベクトルを取得し、出力としてVARCHAR2またはCLOB型の文字列を返します。
目的
FROM_VECTORでは、オプションでRETURNING句を使用して戻り値のデータ型を指定します。
サイズを指定せずにVARCHAR2を指定すると、返される値サイズのサイズは32767になります。
オプションで、トークンSPARSEまたはDENSEを使用してFORMAT句で出力のテキスト形式を指定できます。なお、入力ベクトル格納形式は、指定された出力形式と一致する必要はありません。
CHAR、NCHARおよび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;
