TO_VECTOR
TO_VECTORは、VARCHAR2、CLOB、BLOBまたはJSON型の文字列を入力として受け取り、ベクトルに変換して、ベクトルを出力として返すコンストラクタです。また、TO_VECTORは別のベクトルを入力として受け取り、その形式を調整して、調整されたベクトルを出力として返します。TO_VECTORはVECTORと同義です。
パラメータ
-
exprは次のいずれかと評価される必要があります。- ベクトルを表す文字列(文字型または
CLOB)。 VECTOR。BLOB。BLOBはベクトルのバイナリ・バイトを表す必要があります。- JSON配列。配列内のすべての要素は数値である必要があります。
exprがNULLの場合、結果はNULLになります。ベクトルの文字列表現は、大カッコで囲まれてカンマで区切られたNULL以外の数値の配列(
[1, 3.4, -05.60, 3e+4]など)の形式である必要があります。TO_VECTORは、ベクトルの有効な文字列表現を、指定された形式のベクトルに変換します。形式が指定されていない場合は、デフォルトの形式が使用されます。 - ベクトルを表す文字列(文字型または
-
number_of_dimensionsは、作成するベクトルのディメンション数を表す数値である必要があります。ディメンション数は、アスタリスク(*)として指定することもできます。この場合、次元はexprによって判断されます。 -
formatは、INT8、FLOAT32、FLOAT64、BINARYまたは*のいずれかのトークンである必要があります。これはベクトルのターゲットでの内部格納形式です。*を使用した場合、形式はFLOAT32になります。この動作は、ベクトル列の宣言とは異なります。
VECTOR(3, *)型の列を宣言すると、挿入されたすべてのベクトルがそのまま格納され、書式は変更されません。 -
storage_formatは、DENSE、SPARSEまたは*のいずれかのトークンである必要があります。ストレージ形式が指定されていない場合、または*が使用されている場合は、入力タイプに応じて次のようになります:- テキスト入力: ストレージ形式はデフォルトで
DENSEに設定されます。 - JSON入力: ストレージ形式はデフォルトで
DENSEに設定されます。 VECTOR入力: デフォルトがなく、ストレージ形式は変更されません。BLOB入力: デフォルトがなく、ストレージ形式は変更されません。
- テキスト入力: ストレージ形式はデフォルトで
例
SELECT TO_VECTOR('[34.6, 77.8]');
TO_VECTOR('[34.6,77.8]')
---------------------------------------------------------
[3.45999985E+001,7.78000031E+001]
SELECT TO_VECTOR('[34.6, 77.8]', 2, FLOAT32);
TO_VECTOR('[34.6,77.8]',2,FLOAT32)
---------------------------------------------------------
[3.45999985E+001,7.78000031E+001]
SELECT TO_VECTOR('[34.6, 77.8, -89.34]', 3, FLOAT32);
TO_VECTOR('[34.6,77.8,-89.34]',3,FLOAT32)
-----------------------------------------------------------
[3.45999985E+001,7.78000031E+001,-8.93399963E+001]
SELECT TO_VECTOR('[34.6, 77.8, -89.34]', 3, FLOAT32, DENSE);
TO_VECTOR('[34.6,77.8,-89.34]',3,FLOAT32,DENSE)
---------------------------------------------------------------------
[3.45999985E+001,7.78000031E+001,-8.93399963E+001]
ノート:
-
Oracle Database 23aiに接続された23aiより前のOracle Clientライブラリを使用するアプリケーションでは、
TO_VECTORファンクションを使用してベクトル・データを挿入します。次に例を示します。INSERT INTO vecTab VALUES(TO_VECTOR('[1.1, 2.9, 3.14]')); -
Oracle Client 23aiライブラリまたはThinモード・ドライバを使用するアプリケーションでは、ベクトル・データを文字列または
CLOBとして直接挿入できます。次に例を示します。INSERT INTO vecTab VALUES ('[1.1, 2.9, 3.14]');
親トピック: ベクトルのコンストラクタ
