数据库管理-第160期 Oracle Vector DB AI-11(20240312)

数据库管理160期 2024-03-12

  • 数据库管理-第160期 Oracle Vector DB & AI-11(20240312)
    • 1 向量的函数操作
      • to_vector()
      • 将vector转换为标准值
        • vector_norm()
        • vector_dimension_count()
        • vector_dimension_format()
    • 2 将向量转换为字符串或CLOB
      • vector_serialize()
      • from_vector()
    • 总结

数据库管理-第160期 Oracle Vector DB & AI-11(20240312)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
国内某科技公司 DBA总监
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家、年度墨力之星,ITPUB认证专家,OCM讲师
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭。

来到了Oracle Vector DB基础介绍的最后阶段了,本期讲一下其他的vector函数,包含向量的函数操作、向量转换和绑定操作。

1 向量的函数操作

to_vector()

to_vector()函数是将一个字符串转换为向量,和vector()函数一样。

SELECT to_vector('[34.6, 77.8]', 2, float32) FROM dual;SELECT to_vector('[34.6, 77.8, -89.34]', 3, float32);

image.png
注: 这里也演示了Oracle DB 23c中的新特性,可以不用from dual。

将vector转换为标准值

vector_norm()

vector_norm()函数输出原点到向量点的的距离:

SELECT vector_norm(vector('[4, 3]', 2, float32) );SELECT vector_norm(vector('[4, 3]', 2, float64) );SELECT vector_norm(vector('[4, 3]', 2, int8) );

image.png

vector_dimension_count()

vector_dimension_count()函数输出向量的维度数量:

SELECT vector_dimension_count(vector('[34.6, 77.8]', 2, float64));SELECT vector_dimension_count(vector('[34.6, 77.8, 9]', 3, float32));SELECT vector_dimension_count(vector('[34.6, 77.8, 9, 10]', 3, int8));

image.png

vector_dimension_format()

vector_dimension_format()函数输出向量的维度类型:

SELECT vector_dimension_format(vector('[34.6, 77.8]', 2, float64));SELECT vector_dimension_format(vector('[34.6, 77.8, 9]', 3, float32));SELECT vector_dimension_format(vector('[34.6, 77.8, 9, 10]', 3, int8));

image.png

2 将向量转换为字符串或CLOB

目前,python-oracledb和node-oracledb SQL驱动程序支持输入和输出向量的本地绑定(即直接使用向量)。其他SQL驱动程序,如JDBC和ODP.NET SQL只允许将向量绑定为字符串或CLOB。当Oracle 23.4提供Oracle AI Vector Search时,所有Oracle SQL驱动程序都应支持本地向量量绑定
较旧的SQL驱动程序[21c及之前版本]要求您通过使用vector()或to_vector()函数显式转换向量输入,并通过from_vector()或vector_serialize()将向量输出转换为字符串或CLOB。
注意: 如果您在SQL*Plus、sqlcl或SQL Developer中运行此实验室,您将不会在输出中看到明显的差异,但您可以确信Vector转换已经执行。

vector_serialize()

vector_serialize()函数可以将向量转换为字符串或CLOB:

SELECT vector_serialize(vector('[1.1, 2.2, 3.3]', 3, float32));SELECT vector_serialize(vector('[1.1, 2.2, 3.3]', 3, float32)returning varchar2(1000));SELECT vector_serialize(vector('[1.1, 2.2, 3.3]', 3, float32)returning clob);

image.png

from_vector()

from_vector()函数可以将向量转换为字符串或CLOB,等同与vector_serialize()函数:

SELECT from_vector(vector('[1.1, 2.2, 3.3]', 3, float32));SELECT from_vector(vector('[1.1, 2.2, 3.3]', 3, float32) returning varchar2(1000));SELECT from_vector(vector('[1.1, 2.2, 3.3]', 3, float32) returning clob);

image.png

总结

本期简单演示了vector相关的其他函数。
下一期可能需要等待一段时间,将自己做一个演示DEMO来更直观展示Oracle Vector DB和AI Vector Search的功能。
老规矩,知道写了些啥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

I O 流

IO流 啥是流 1、IO:输入 \ 输出流:一种抽象概念,是对数据传输的总称,也就是说,数据在设备间的传输称为流,流的本质,是数据传输IO流,就是用来,处理设备间的数据传输问题…

Android 使用adb操作WiFi相关指令

没有系统原生设置应用又需要调试WiFi功能时,可以使用如下指令来验证WiFi相关功能 最常用的就是 svc wifi enable/disable,再使用wpa_supplicant/wpa_cli来验证,但对于AP功能就没办法验证了,其实Android有组很强大的shell指令集&a…

明明jar包存在却报错找不到包名?两招教你解决java: 程序包org.springframework.context.annotation不存在问题!

一、问题提出 IDEA项目有时因为依赖库的问题出现出错: java: 程序包org.springframework.context.annotation不存在,如下图。 二、解决办法 方案1: 重新导入项目 ① 将项目中 .idea .iml 全部删除,项目重新导入 ② 用idea重新…

看完让你的RSA提升一个台阶 [GKCTF 2021]RRRRsa

阅读须知: 探索者安全团队技术文章仅供参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作,由于传播、利用本公众号所提供的技术和信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,如有侵权烦请告知,我们会立即删除…

2024计算机二级Python

1. 栈是先进先出,队是后进后出 2. 代码输出长度为5并不是\不占用位置,而是\与其后边的数字共同占用一个字符 3. 首先要弄清range函数此时表示的范围是前闭后开,不包含后面的数字,%函数表示的是余数,只有4是被整除的…

各种实用设置

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、命令行设置代理二、python包下载三、git设置代理 前言 一、命令行设置代理 export http_proxy"http://addr:port"二、python包下载 设置代理 …

sprintf函数和printf函数

在C语言中,sprintf函数和printf函数是两个非常常用的函数,它们都用于格式化输出字符串。尽管它们的名称很相似,但它们的功能却有所不同。 首先让我们来看一下printf函数。printf函数是C语言中最常用的输出函数之一,它用于将格式化…

批量处理数据:Java中的高效策略和实践

在处理大量数据时,尤其是在需要对数据库中的大批量记录进行更新时,有效的批处理策略是必不可少的。今天,我们将探讨一种在Java中批量更新数据的方法,并了解其在现实场景中的应用。 使用场景:重置视频标题 假设我们有…

案例分析篇15:软件开发方法考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

什么是Java中的线程?

Java中的线程 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程是独立的&#…

ios xcode 15 PrivacyInfo.xcprivacy 隐私清单 查询应用使用的隐私api

1.需要升级mac os系统到13 兼容 xcode 15.1 2.升级mac os系统到14 兼容 xcode 15.3 3.选择 New File 4.直接搜索 privacy 能看到有个App Privacy 5.右击Add Row 7.直接选 Label Types 8.选中继续添加就能添加你的隐私清单了 苹果官网文档

【Java】关于equals 和 ==

一、 和 equals 区别 是运算符; 判读左右两端的数据是否一致, 比较基本数据类型比较的是值,比较引用数据类型比较的是地址值 ; 默认判断的是两个对象的内存地址是否一致,一般用在基本数据类型上 equals equals 是ob…

每日一题——LeetCode1678.设计Goal解析器

方法一 splice 将字符串转为数组,对数组进行遍历,碰到G保持不变,继续循环,碰到 ( 看他后一位,是 ) 则删除两个元素,添加一个 o ,不是则删除四个元素,添加元素 al ,最后将…

打工人狂喜,微信管理既如此简单

微信作为一款全民的社交软件,已经成为人们日常生活中必不可少的通讯工具。不仅个人使用广泛,很多企业也依赖微信进行业务沟通和客户服务。然而,对于企业用户来说,管理多个微信号确实带来了许多繁琐和不便之处。 但是!…

Python代码执行慢的原因是什么?如何优化Python代码的性能?

1.Python代码执行慢的原因是什么? Python代码执行慢的原因有很多,以下是其中的一些主要原因: 动态类型:Python 是一种动态类型的语言,这意味着 Python 需要在运行时检查每个变量的类型。这种动态类型检查相对于静态类…

arm-linux WiFi测试指令脚本

11B通道测试脚本如下 手动测试功率 11B rtwpriv wlan0 mp_pwrctldm stop rtwpriv wlan0 mp_ctx stop rtwpriv wlan0 mp_start rtwpriv wlan0 mp_channel 1 rtwpriv wlan0 mp_bandwidth 40M0,shortGI0 rtwpriv wlan0 mp_ant_tx a #mp_ant_tx a …

【经验分享】创建团队编程训练区,发布编程打卡题及考核

总结: 1、在vijos平台上创建团队编程训练区,管理加入的成员,训练区内的资源仅对成员公开; 2、发布编程题让团队成员进行训练,能够实时查询成员通关情况; 3、能够想发布限时考试,对成员进行考核。…

Java毕业设计-基于spring boot开发的实习管理系统-毕业论文+答辩ppt(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1.开发说明2.需求分析3、系统功能结构 三、系统实现展示1、前台功能模块2、后台功能模块2.1 管理员功能2.2 教师功能2.3 学生功能2.4 实习单位功能 四、毕设内容和源代码获取总结 Java毕业设…

全面解析unityplayer.dll丢失的5种解决方法,轻松搞定dll丢失

在使用Unity开发的游戏或应用过程中,如果发现系统提示“找不到unityplayer.dll”文件,可能会引发一系列的问题与不便。这将直接导致游戏或应用程序无法正常启动运行,因为unityplayer.dll是Unity引擎的核心组件之一,负责处理关键的…

【C语言】三种方式实现字符串(char*)/字符数组(char[ ])输入输出

前言 做题时经常需要用到字符串,写篇笔记加强记忆,本文用 4个例子实现字符串的输入输出操作。 scanf(); 从键盘输入数据时,遇到 “空格”、“回车” 都会终止。若要接受空格,使用 gets(); 代替 scanf(); 多个 scanf(); 同时出现…