首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >26ai新特性实战:新向量生成函数

26ai新特性实战:新向量生成函数

作者头像
胖头鱼的鱼缸
发布2026-07-02 15:53:44
发布2026-07-02 15:53:44
60
举报

胖头鱼的技术专栏-438 26ai新特性实战:新向量生成函数(20260702)

914fcc7ad57defa7868c3be1ca7fb4f5.jpg
914fcc7ad57defa7868c3be1ca7fb4f5.jpg

继续Oracle AI Database 26ai的新特性实战,今天带来的同样是23.26.2版本新增的特性:向量生成函数

特性介绍

Oracle AI Database 23.26.2 新增了三个向量生成 SQL 函数,极大地方便了向量数据的原型开发和测试:

  1. VECTOR_ORIGIN(n) 创建一个所有维度值均为零的向量,表示 n 维向量空间的原点。作为原型开发中的绑定变量,它始终适用于任何向量数据集——无需提前知道表中的向量维度或格式即可进行查询测试。
  2. VECTOR_RANDOM(n) 生成一个包含随机值的向量。该值在一条 SQL 语句的所有行中保持不变(即所有行获得相同的随机向量)。适用于需要单一查询向量的场景。
  3. VECTOR_RANDOM_PER_ROW(n) 为每一行生成不同的随机向量值。适用于批量生成随机向量测试数据,快速填充向量表以进行性能测试或功能验证。

这三个函数使开发者能够快速生成随机向量数据和向量绑定变量。

前置条件:数据库初始化参数 COMPATIBLE >= 23.6.0

适用场景

  • 概念验证(PoC):快速生成测试向量数据,无需依赖外部嵌入模型
  • 性能测试:使用 VECTOR_RANDOM_PER_ROW 批量生成数万条向量记录,测试向量索引(HNSW/IVC)的查询性能
  • 原型开发:使用 VECTOR_ORIGIN 作为查询向量进行相似度搜索测试,因为零向量对任何维度都有效,无需关心目标表的向量维度
  • 数据库迁移验证:从其他向量数据库迁移后,使用随机向量验证查询逻辑
  • 教学演示:在培训或演示中快速展示向量搜索功能

实战演示

同上一期一样使用用户NFTEST,已授权DB_DEVELOPER_ROLE角色,测试操作均在NFTEST用户下执行。

测试1:VECTOR_ORIGIN向量生成

代码语言:javascript
复制
SELECT VECTOR_ORIGIN(3)  AS v3,
       VECTOR_ORIGIN(8)  AS v8,
       VECTOR_ORIGIN(10) AS v10
FROM dual;
image.png
image.png

测试2:VECTOR_RANDOM向量生成

代码语言:javascript
复制
SELECT rownum AS rn, VECTOR_RANDOM(3) AS same_for_all
FROM dual CONNECT BY level <= 3;
image.png
image.png

测试3:VECTOR_RANDOM_PER_ROW向量生成

代码语言:javascript
复制
SELECT rownum AS rn, VECTOR_RANDOM_PER_ROW(3) AS different_per_row
FROM dual CONNECT BY level <= 5;
image.png
image.png

测试4:模拟应用

代码语言:javascript
复制
-- 创建测试表
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;
image.png
image.png

测试5:VECTOR_RANDOM和VECTOR_RANDOM_PER_ROW对比

代码语言:javascript
复制
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;
image.png
image.png

总结

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

老规矩,知道写了些啥。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 胖头鱼的鱼缸 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 胖头鱼的技术专栏-438 26ai新特性实战:新向量生成函数(20260702)
    • 特性介绍
    • 适用场景
    • 实战演示
      • 测试1:VECTOR_ORIGIN向量生成
      • 测试2:VECTOR_RANDOM向量生成
      • 测试3:VECTOR_RANDOM_PER_ROW向量生成
      • 测试4:模拟应用
      • 测试5:VECTOR_RANDOM和VECTOR_RANDOM_PER_ROW对比
    • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档