

继续Oracle AI Database 26ai的新特性实战,今天带来的同样是23.26.2版本新增的特性:向量生成函数。
Oracle AI Database 23.26.2 新增了三个向量生成 SQL 函数,极大地方便了向量数据的原型开发和测试:
这三个函数使开发者能够快速生成随机向量数据和向量绑定变量。
前置条件:数据库初始化参数 COMPATIBLE >= 23.6.0
同上一期一样使用用户NFTEST,已授权DB_DEVELOPER_ROLE角色,测试操作均在NFTEST用户下执行。
SELECT VECTOR_ORIGIN(3) AS v3,
VECTOR_ORIGIN(8) AS v8,
VECTOR_ORIGIN(10) AS v10
FROM dual;

SELECT rownum AS rn, VECTOR_RANDOM(3) AS same_for_all
FROM dual CONNECT BY level <= 3;

SELECT rownum AS rn, VECTOR_RANDOM_PER_ROW(3) AS different_per_row
FROM dual CONNECT BY level <= 5;

-- 创建测试表
CREATE TABLE vec_test (
id NUMBER PRIMARY KEY,
name VARCHAR2(50),
embedding VECTOR(4, FLOAT32)
);
-- 插入5条包含随机向量的行记录
INSERT INTO vec_test
SELECT rownum, 'Item ' || rownum, VECTOR_RANDOM_PER_ROW(4)
FROM dual CONNECT BY level <= 5;
COMMIT;
-- 检查生成数据
SELECT id, name, embedding FROM vec_test ORDER BY id;
-- 使用VECTOR_ORIGIN生成的值作为查询向量查询和原点最接近的3行数据
SELECT id, name,
VECTOR_DISTANCE(embedding, VECTOR_ORIGIN(4), EUCLIDEAN) AS dist
FROM vec_test
ORDER BY dist ASC
FETCH FIRST 3 ROWS ONLY;

SELECT rownum AS rn,
VECTOR_RANDOM(3) AS same_for_all,
VECTOR_RANDOM_PER_ROW(3) AS different_per_row
FROM dual CONNECT BY level <= 3;

本期对Oracle AI Database 26ai,23.26.2版本新引入的向量生成函数进行了完整介绍与实战演示,这是一个非常便捷的测试与模拟方法。
老规矩,知道写了些啥。