验证Oracle AI Database 26ai的向量搜索功能,包括:

SELECT * FROM v$version;
查询结果:
BANNER BANNER_FULL BANNER_LEGACY CON_ID
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----------
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production 0
Version 23.26.1.0.0
SELECT name, value FROM v$parameter WHERE name LIKE '%vector%' OR name LIKE '%ai%';
查询结果:
NAME VALUE
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
vector_memory_size 0
inmemory_deep_vectorization TRUE
vector_index_neighbor_graph_reload RESTART
vector_query_capture ON
spatial_vector_acceleration TRUE
SELECT privilege FROM user_sys_privs WHERE privilege LIKE '%VECTOR%' OR privilege LIKE '%AI%';
查询结果: 无结果(用户没有特定的向量相关权限)
DECLARE v_vector VECTOR(3);BEGIN v_vector := VECTOR('[1.0, 2.0, 3.0]'); DBMS_OUTPUT.PUT_LINE('Vector type is supported');EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Vector type error: ' || SQLERRM);END;/测试结果:
Vector type is supported
创建表:
CREATE TABLE fruit_vectors ( id NUMBER PRIMARY KEY, name VARCHAR2(50), vector_text VARCHAR2(1000));
插入数据:
INSERT INTO fruit_vectors VALUES (1, 'Apple', '[0.1, 0.2, 0.3]');INSERT INTO fruit_vectors VALUES (2, 'Banana', '[0.2, 0.3, 0.4]');INSERT INTO fruit_vectors VALUES (3, 'Orange', '[0.3, 0.4, 0.5]');INSERT INTO fruit_vectors VALUES (4, 'Grape', '[0.4, 0.5, 0.6]');INSERT INTO fruit_vectors VALUES (5, 'Mango', '[0.5, 0.6, 0.7]');
查询数据:
SELECT * FROM fruit_vectors;
查询结果:
ID NAME VECTOR_TEXT
---------- ---------------------------------------- ------------------------------
1 Apple [0.1, 0.2, 0.3]
2 Banana [0.2, 0.3, 0.4]
3 Orange [0.3, 0.4, 0.5]
4 Grape [0.4, 0.5, 0.6]
5 Mango [0.5, 0.6, 0.7]
SELECT f1.name AS fruit1, f2.name AS fruit2, '相似度计算示例' AS similarity_methodFROM fruit_vectors f1CROSS JOIN fruit_vectors f2WHERE f1.id < f2.id;
查询结果:
FRUIT1 FRUIT2 SIMILARITY_METHOD
-------------------------------------------------- -------------------------------------------------- ---------------------
Apple Banana 相似度计算示例
Apple Orange 相似度计算示例
Apple Grape 相似度计算示例
Apple Mango 相似度计算示例
Banana Orange 相似度计算示例
Banana Grape 相似度计算示例
Banana Mango 相似度计算示例
Orange Grape 相似度计算示例
Orange Mango 相似度计算示例
Grape Mango 相似度计算示例
10 rows selected.
inmemory_deep_vectorization = TRUE - 启用内存深度向量化vector_query_capture = ON - 启用向量查询捕获spatial_vector_acceleration = TRUE - 启用空间向量加速完整的测试脚本已保存为:/home/ora23/test_vector_simple.sql
-- 简单的向量搜索测试-- 检查数据库版本和向量功能支持SELECT * FROM v$version;-- 检查数据库参数SELECT name, value FROM v$parameter WHERE name LIKE '%vector%' OR name LIKE '%ai%';-- 检查用户权限SELECT privilege FROM user_sys_privs WHERE privilege LIKE '%VECTOR%' OR privilege LIKE '%AI%';-- 测试向量类型是否可用DECLARE v_vector VECTOR(3);BEGIN v_vector := VECTOR('[1.0, 2.0, 3.0]'); DBMS_OUTPUT.PUT_LINE('Vector type is supported');EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Vector type error: ' || SQLERRM);END;/-- 创建测试表和数据...通过本次测试,我们确认Oracle AI Database 26ai支持向量数据类型和相关功能,但需要适当的权限和表空间配置才能充分发挥其向量搜索能力。