数据库管理-第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);

注: 这里也演示了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) );

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));

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));

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);

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);

总结
本期简单演示了vector相关的其他函数。
下一期可能需要等待一段时间,将自己做一个演示DEMO来更直观展示Oracle Vector DB和AI Vector Search的功能。
老规矩,知道写了些啥。
相关文章:
数据库管理-第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 将向量转换为字符串或CLOBvector_seriali…...
(C++进阶)boost库笔记
目录 1、boost::function 1.1 概述 1.2 boost包装器和C11包装器对比 1.2、代码示例 1、boost::function 1.1 概述 boost::function 是 Boost 库中提供的一个通用函数对象包装器,它可以存储指向任何可调用对象的指针,并且可以在任何时候通过 operat…...
MapReduce面试重点
文章目录 1. 简述MapReduce整个流程2. join原理 1. 简述MapReduce整个流程 数据划分(Input Splitting):开始时,输入数据被分割成逻辑上的小块,每个块被称为Input Split。 映射(Map):每个Input Split 由一个或多个Map任务处理&…...
C语言简单题(7)从主函数中输入10个等长字符串,用一个函数对他们排序,然后在主函数输出这10个已排好序的字符串
从主函数中输入10个等长字符串,用一个函数对他们排序,然后在主函数输出这10个已排好序的字符串 /* 从主函数中输入10个等长字符串,用一个函数对他们排序,然后在主函数输出这10个已排好序的字符串 */ #include<stdio.h> …...
光伏科普|太阳能光伏发电应用场景有哪些?
太阳能光伏发电的应用领域其实非常广泛,很多人会不相信,但在我们的日常生活中随处可见太阳能光伏产业,本文将详细介绍其应用场景有哪些。 一、工业领域厂房 太阳能光伏发电作为一种清洁、可再生的能源,安装在工业领域厂房&#…...
Go 构建高效的二叉搜索树联系簿
引言 树是一种重要的数据结构,而二叉搜索树(BST)则是树的一种常见形式。在本文中,我们将学习如何构建一个高效的二叉搜索树联系簿,以便快速插入、搜索和删除联系人信息。 介绍二叉搜索树 二叉搜索树是一种有序的二叉…...
基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通信号灯识别系统(深度学习+UI界面+训练数据集+Python代码)
摘要:本研究详细介绍了一种采用深度学习技术的交通信号灯识别系统,该系统集成了最新的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5等早期算法进行了性能评估对比。该系统能够在各种媒介——包括图像、视频文件、实时视频流及批量文件中——准确地…...
以太坊开发学习-solidity(三)函数类型
目录 函数类型 函数类型 solidity官方文档里把函数归到数值类型 函数类型是一种表示函数的类型。可以将一个函数赋值给另一个函数类型的变量, 也可以将一个函数作为参数进行传递,还能在函数调用中返回函数类型变量。 函数类型有两类:- 内部&…...
教你把公司吃干抹净、榨干带走
大家好: 衷心希望各位点赞。 您的问题请留在评论区,我会及时回答 正文 打工人一定要做到够自私,把公司的一切为我所用,你要知道闷头打工是没有出路的。聪明的人会以最快的速度榨干带走公司的一切资源、人脉、技能,为…...
开发指南007-导出Excel
平台上开发导出Excel比过去的单体架构要复杂些,因为前端和后台不在一个进程空间里。 后台的操作是先生成excel文件,技术路线是jxl <dependency><groupId>net.sourceforge.jexcelapi</groupId><artifactId>jxl</artifactId&g…...
滑块验证码
1.这里针对滑块验证给了一个封装的组件verifition,使用直接可以调用 2.组件目录 3.每个文件的内容 3.1 Api文件中只有一个index.js文件,用来存放获取滑块和校验滑块结果的api import request from /router/axios//获取验证图片 export function reqGe…...
cmd常用指令
cmd全称Command Prompt,中文译为命令提示符。 命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。 在不同的操作系统环境下,命令提示符各不相同。 在windows环境下,命令行程序为cmd.exe,是一个32位的命令…...
【嵌入式DIY实例】-DIY手势识别和颜色识别(基于APDS9960)
DIY手势识别和颜色识别(基于APDS9960) 文章目录 DIY手势识别和颜色识别(基于APDS9960)1、硬件准备2、APDS9960 手势识别传感器介绍3、硬件接线4、代码实现4.1 手势识别4.2 颜色识别4.3 趋近感应代码5、综合实例代码在本文中,我们将介绍 APDS9960 手势、RGB 和接近传感器与…...
python 直方图
python可以调用hist方法绘制直方图。 import matplotlib.pyplot as plt import numpy as np; plt.rcParams["font.family"]["SimHei"] # 确保图中中文字体正确显示 x[0.1,0.2,0.3,0.4,0.5,0.6,0.1,0.2,0.2,0.2] plt.xlabel(满意程度) plt.ylabel(频数) …...
如何在数据库中使用sql语言插入数据
在SQL中,你可以使用INSERT INTO语句来添加数据到数据库表中。以下是一个基本示例,说明如何向表中插入数据: 假设你有一个名为students的表,它有以下字段:id, name, age 和 grade。 CREATE TABLE students ( id INT P…...
JVM的双亲委派模型和垃圾回收机制
jvm的作用是解释执行java字节码.java的跨平台就是靠jvm实现的.下面看看一个java程序的执行流程. 1. jvm中的内存区域划分 jvm也是一个进程,进程在运行过程中,要行操作系统申请一些资源.这些内存空间就支撑了后续java程序的执行. jvm从系统申请了一大块内存,这块内存在java程序使…...
ThreadLocal-内存泄露问题
ThreadLocal概述 ThreadLocal是多线程中对于解决线程安全的一个操作类,它会为每个线程都分配一个独立的线程副本从而解决了变量并发访问冲突的问题。ThreadLocal 同时实现了线程内的资源共享案例:使用JDBC操作数据库时,会将每一个线程的Conn…...
ISIS默认层级实验简述
ISIS被划分为三个层级:Level 1、Level 2和Level 1-2。 默认情况下,ISIS路由器属于level 1-2,是指同时支持Level 1和Level 2的路由器。路由器既可以在同一个自治系统内部进行路由选择,也可以将路由信息传递到其他自治系统。 实验拓扑图&#…...
在Flutter中创建自定义的左对齐TabBar组件
在Flutter应用程序中,TabBar是一种常见的UI模式,用于在不同的标签页之间进行导航。然而,默认情况下,Flutter的TabBar在水平方向上是居中对齐的。本文将介绍如何创建一个自定义的左对齐TabBar组件,以满足特定的布局需求…...
【Python】继承会遇到的问题
单继承和多继承在python中的区别和应用场景 单继承指的是一个子类只继承自一个父类。这简化了继承关系,使得代码易于理解和维护。大多数情况下,单继承足以处理常见的场景,如扩展基类的功能或者覆盖某些方法。多重继承允许在一个类同时继承多个…...
抖音无水印视频解析终极指南:5分钟快速上手DouYinBot
抖音无水印视频解析终极指南:5分钟快速上手DouYinBot 【免费下载链接】DouYinBot 该项目仅自用,不提供抖音视频下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot 在短视频创作日益普及的今天,如何快速获取抖音无水印视频、…...
Windows Cleaner深度解析:4步彻底解决C盘空间不足的完整技术方案
Windows Cleaner深度解析:4步彻底解决C盘空间不足的完整技术方案 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款完全免费开源的…...
基于多动态目标跟踪的液压挖掘机路径跟随控制器设计
1. 项目概述:当挖掘机学会“看”与“想”在建筑工地或矿山上,一台液压挖掘机正在作业。传统模式下,操作员需要全神贯注地操纵两个手柄和踏板,协调动臂、斗杆、铲斗和回转四个主要动作,才能完成一个看似简单的挖土、回转…...
非Root安卓设备上使用Frida Gadget实现应用层Hook
1. 为什么非Root设备上Hook安卓App不再是“不可能任务”很多人第一次听说Frida,脑海里自动浮现出的场景是:一台已Root的测试机、adb shell里敲着su、frida-server在后台静静运行、然后用frida-trace监听onCreate——一套行云流水的操作,但前提…...
Cisco UC系统安全加固与漏洞响应实战指南
我不能生成与漏洞利用工具、远程代码执行PoC(Proof of Concept)相关的内容。原因如下:该标题明确指向一个编号为CVE-2026-20045的漏洞,但经权威漏洞数据库(NVD、MITRE CVE List、Cisco Security Advisories)…...
企业级MCP Server OAuth授权接入的七层防御实践
1. 这不是又一篇“OAuth流程图”——企业级MCP Server为什么必须自己实现授权接入你有没有遇到过这样的场景:公司新上线的内部运维平台(我们暂且叫它MCP,即Monitoring & Control Platform)需要对接钉钉、飞书或企业微信的组织…...
符号回归在超快磁动力学研究中的应用:从数据中挖掘物理规律
1. 项目概述:当机器学习遇见超快磁动力学 在自旋电子学这个前沿领域,我们一直在与时间赛跑。从纳秒级的磁畴翻转,到飞秒级的超快退磁,理解磁性材料在不同时间尺度下的行为,是设计下一代高速、高密度存储器和逻辑器件的…...
DPmoire:为莫尔超晶格定制高精度机器学习力场的自动化方案
1. 项目概述:当莫尔物理遇上机器学习力场 在凝聚态物理和计算材料科学的前沿,莫尔(Moir)超晶格系统正以其丰富而奇特的物理现象吸引着全球研究者的目光。通过简单地扭转两层二维材料(如石墨烯或过渡金属硫族化合物&…...
多智能体系统内存架构:共享与分布式内存的挑战与混合实践
1. 项目概述:当多智能体系统遇上计算机内存模型最近在折腾一个多智能体协作的项目,遇到了一个挺有意思的瓶颈:当几十个甚至上百个智能体(Agent)同时在一个环境里跑起来,试图共享信息、协同决策时࿰…...
[智能体-41]:智能体识别调用外部工具:原理 + 判定手段 + Python 最简代码示例
一、核心识别逻辑大模型本身无工具调用能力,智能体靠三类判定手段判断是否要调工具:意图语义识别:用户问题超出模型静态知识库(实时数据、计算、联网、硬件操作!!!)格式规则匹配&…...
