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;