---
title: RheoData Blog | artificial intelligence
description: artificial intelligence | RheoData Blog Posts
---

[![RheoData - Logo - transparent-1](https://rheodata.com/hs-fs/hubfs/RheoData%20-%20Logo%20-%20transparent-1.png?width=250&height=50&name=RheoData%20-%20Logo%20-%20transparent-1.png "RheoData - Logo - transparent-1")](https://rheodata.com/)

- Who We Are 
    - [About Us](https://rheodata.com/who-we-are)
- Services 
    - Consulting 
          - [The Studio](https://rheodata.com/the-studio)
    - Accelerators 
          - [FrostCore](https://rheodata.com/frostcore)
          - [FrostAI](https://rheodata.com/frostai)
          - [RedCore](https://rheodata.com/redcore)
          - [RedAI](https://rheodata.com/redai)
          - [RedGuard](https://rheodata.com/redguard)
          - [BlueCore](https://rheodata.com/bluecore)
          - [Calypso](https://rheodata.com/calypso)
    - Services 
          - [Data Integration](https://rheodata.com/data-integration)
          - [Analytics](https://rheodata.com/data-analytics)
          - [Multi-Cloud](https://rheodata.com/multi-cloud)
          - [Oracle@Google Cloud](https://rheodata.com/oracle-google-cloud)
          - [Exadata & Oracle Database](https://rheodata.com/exadata-and-oracle-database-26ai)
- Verticals 
    - [Manufacturing](https://rheodata.com/manufacturing)
    - [Retail](https://rheodata.com/retail)
    - [State & Local](https://rheodata.com/sled)
- [Customer Stories](https://rheodata.com/customer-stories) 
    - [Altec](https://rheodata.com/customer-stories/altec-oci-goldengate-data-migration)
    - [Shoe Carnival](https://rheodata.com/customer-stories/shoe-carnival-goldengate-microservices-migration)
    - [Icon](https://rheodata.com/customer-stories/icon-transatlantic-replication)
    - [Inovalon](https://rheodata.com/customer-stories/inovalon-data-pipeline-automation)
- Resources 
    - [Blog](https://rheodata.com/en-us/blog)
    - Books 
          - [Pro Oracle GoldenGate 23ai](https://rheodata.com/pro-oracle-goldengate-23ai-for-the-dba-pdf-landing-page)
- [Contact](https://rheodata.com/contact)

[![](https://rheodata.com/hs-fs/hubfs/Imported_Blog_Media/blog-feature-Logo-Nov-26-2025-07-14-39-7226-PM.png?width=100&height=100&name=blog-feature-Logo-Nov-26-2025-07-14-39-7226-PM.png)](https://rheodata.com/)

<https://rheodata.com/en-us/blog/tag/artificial-intelligence#minimal-header__mobile-nav__mmenu>

[![RheoData - Logo - transparent-1](https://rheodata.com/hs-fs/hubfs/RheoData%20-%20Logo%20-%20transparent-1.png?width=250&height=50&name=RheoData%20-%20Logo%20-%20transparent-1.png "RheoData - Logo - transparent-1")](https://rheodata.com/)

- Who We Are 
    - [About Us](https://rheodata.com/who-we-are)
- Services 
    - Consulting 
          - [The Studio](https://rheodata.com/the-studio)
    - Accelerators 
          - [FrostCore](https://rheodata.com/frostcore)
          - [FrostAI](https://rheodata.com/frostai)
          - [RedCore](https://rheodata.com/redcore)
          - [RedAI](https://rheodata.com/redai)
          - [RedGuard](https://rheodata.com/redguard)
          - [BlueCore](https://rheodata.com/bluecore)
          - [Calypso](https://rheodata.com/calypso)
    - Services 
          - [Data Integration](https://rheodata.com/data-integration)
          - [Analytics](https://rheodata.com/data-analytics)
          - [Multi-Cloud](https://rheodata.com/multi-cloud)
          - [Oracle@Google Cloud](https://rheodata.com/oracle-google-cloud)
          - [Exadata & Oracle Database](https://rheodata.com/exadata-and-oracle-database-26ai)
- Verticals 
    - [Manufacturing](https://rheodata.com/manufacturing)
    - [Retail](https://rheodata.com/retail)
    - [State & Local](https://rheodata.com/sled)
- [Customer Stories](https://rheodata.com/customer-stories) 
    - [Altec](https://rheodata.com/customer-stories/altec-oci-goldengate-data-migration)
    - [Shoe Carnival](https://rheodata.com/customer-stories/shoe-carnival-goldengate-microservices-migration)
    - [Icon](https://rheodata.com/customer-stories/icon-transatlantic-replication)
    - [Inovalon](https://rheodata.com/customer-stories/inovalon-data-pipeline-automation)
- Resources 
    - [Blog](https://rheodata.com/en-us/blog)
    - Books 
          - [Pro Oracle GoldenGate 23ai](https://rheodata.com/pro-oracle-goldengate-23ai-for-the-dba-pdf-landing-page)
- [Contact](https://rheodata.com/contact)

[![](https://rheodata.com/hs-fs/hubfs/Imported_Blog_Media/blog-feature-Logo-Nov-26-2025-07-14-39-7226-PM.png?width=100&height=100&name=blog-feature-Logo-Nov-26-2025-07-14-39-7226-PM.png)](https://rheodata.com/)

<https://rheodata.com/en-us/blog/tag/artificial-intelligence#minimal-header__mobile-nav__mmenu>

- Who We Are 
    - [About Us](https://rheodata.com/who-we-are)
- Services 
    - Consulting 
          - [The Studio](https://rheodata.com/the-studio)
    - Accelerators 
          - [FrostCore](https://rheodata.com/frostcore)
          - [FrostAI](https://rheodata.com/frostai)
          - [RedCore](https://rheodata.com/redcore)
          - [RedAI](https://rheodata.com/redai)
          - [RedGuard](https://rheodata.com/redguard)
          - [BlueCore](https://rheodata.com/bluecore)
          - [Calypso](https://rheodata.com/calypso)
    - Services 
          - [Data Integration](https://rheodata.com/data-integration)
          - [Analytics](https://rheodata.com/data-analytics)
          - [Multi-Cloud](https://rheodata.com/multi-cloud)
          - [Oracle@Google Cloud](https://rheodata.com/oracle-google-cloud)
          - [Exadata & Oracle Database](https://rheodata.com/exadata-and-oracle-database-26ai)
- Verticals 
    - [Manufacturing](https://rheodata.com/manufacturing)
    - [Retail](https://rheodata.com/retail)
    - [State & Local](https://rheodata.com/sled)
- [Customer Stories](https://rheodata.com/customer-stories) 
    - [Altec](https://rheodata.com/customer-stories/altec-oci-goldengate-data-migration)
    - [Shoe Carnival](https://rheodata.com/customer-stories/shoe-carnival-goldengate-microservices-migration)
    - [Icon](https://rheodata.com/customer-stories/icon-transatlantic-replication)
    - [Inovalon](https://rheodata.com/customer-stories/inovalon-data-pipeline-automation)
- Resources 
    - [Blog](https://rheodata.com/en-us/blog)
    - Books 
          - [Pro Oracle GoldenGate 23ai](https://rheodata.com/pro-oracle-goldengate-23ai-for-the-dba-pdf-landing-page)
- [Contact](https://rheodata.com/contact)

Posts about

# artificial intelligence

<https://rheodata.com/en-us/blog/similarity-search-oracle-vector-datatype>

## [Similarity Search with Oracle’s Vector Datatype](https://rheodata.com/en-us/blog/similarity-search-oracle-vector-datatype)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:55 PM

In my last two posts I showed you what the Oracle Vector Datatype is and how to update existing...

[CONTINUE READING](https://rheodata.com/en-us/blog/similarity-search-oracle-vector-datatype)

<https://rheodata.com/en-us/blog/vector-datatype>

## [Oracle’s Vector Datatype](https://rheodata.com/en-us/blog/vector-datatype)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:30:03 PM

At Oracle Cloud World 2023, Oracle announced they were moving toward enabling Artificial...

[CONTINUE READING](https://rheodata.com/en-us/blog/vector-datatype)

<https://rheodata.com/en-us/blog/23ai-ai-vector-search>

## [Unlocking the Power of AI Vector Search in Oracle Database 23ai](https://rheodata.com/en-us/blog/23ai-ai-vector-search)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:29:35 PM

Oracle has recently, May 2, 2024, unveiled Oracle Database 23ai, packed with innovative AI...

[CONTINUE READING](https://rheodata.com/en-us/blog/23ai-ai-vector-search)

<https://rheodata.com/en-us/blog/what-is-llmops>

## [What is LLMOps?](https://rheodata.com/en-us/blog/what-is-llmops)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:29:28 PM

## What is LLMOps?

LLMOps, or Large Language Model Operations, refers to the set of practices and...

[CONTINUE READING](https://rheodata.com/en-us/blog/what-is-llmops)

<https://rheodata.com/en-us/blog/onnx-in-oracle-database>

## [Embedding Machine Learning Models in the Oracle Database: Create an ONNX model](https://rheodata.com/en-us/blog/onnx-in-oracle-database)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:29:19 PM

[CONTINUE READING](https://rheodata.com/en-us/blog/onnx-in-oracle-database)

<https://rheodata.com/en-us/blog/similarity-search-python-flask>

## [Similarity Search with Oracle’s Vector Datatype, Python, and Flask](https://rheodata.com/en-us/blog/similarity-search-python-flask)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:29:18 PM

[CONTINUE READING](https://rheodata.com/en-us/blog/similarity-search-python-flask)

<https://rheodata.com/en-us/blog/oracle-vector-datatype-updating-table-data>

## [Oracle Vector Datatype – Updating table data](https://rheodata.com/en-us/blog/oracle-vector-datatype-updating-table-data)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:29:15 PM

[CONTINUE READING](https://rheodata.com/en-us/blog/oracle-vector-datatype-updating-table-data)

<https://rheodata.com/en-us/blog/different-pipelines-masses>

## [Different pipelines for the masses](https://rheodata.com/en-us/blog/different-pipelines-masses)

Posted by [Bobby Curtis](https://rheodata.com/en-us/blog/author/bobby-curtis) | Nov 10, 2025 9:29:02 PM

If you work in the IT industry long enough, you start to see messaging or wording of items to...

[CONTINUE READING](https://rheodata.com/en-us/blog/different-pipelines-masses)

### Recent Posts

#### [Coordinated Replicats: Faster, Lower-Risk GoldenGate Loads](https://rheodata.com/en-us/blog/coordinated-replicats-initial-load)

Posted at Jun 26, 2026 11:08:13 AM

![Post Featured Image](https://rheodata.com/hubfs/Gemini_Generated_Image_509fjc509fjc509f.png)

#### [Forward Deployed Engineering: The Operating Model the Agentic Era Demands](https://rheodata.com/en-us/blog/forward-deployed-engineering-agentic-era)

Posted at May 30, 2026 11:46:34 AM

![Post Featured Image](https://rheodata.com/hubfs/Gemini_Generated_Image_r8vpntr8vpntr8vp.png)

#### [The Bowl Is Broken: A CEO's Note on Mental Health Month and Tech Team Burnout](https://rheodata.com/en-us/blog/tech-team-burnout-mental-health-month-2026)

Posted at May 12, 2026 7:23:33 AM

![Post Featured Image](https://rheodata.com/hubfs/IMG_2142.jpg)

### Posts by Tag

- [Cloud (88)](https://rheodata.com/en-us/blog/tag/cloud)
- [GoldenGate (73)](https://rheodata.com/en-us/blog/tag/goldengate)
- [Business Insights (51)](https://rheodata.com/en-us/blog/tag/business-insights)
- [AI (36)](https://rheodata.com/en-us/blog/tag/ai)
- [19c (22)](https://rheodata.com/en-us/blog/tag/19c)
- [ai pipelines (17)](https://rheodata.com/en-us/blog/tag/ai-pipelines)
- [18c (15)](https://rheodata.com/en-us/blog/tag/18c)
- [21c (14)](https://rheodata.com/en-us/blog/tag/21c)
- [12c (11)](https://rheodata.com/en-us/blog/tag/12c)
- [machine learning (10)](https://rheodata.com/en-us/blog/tag/machine-learning)
- [23ai (9)](https://rheodata.com/en-us/blog/tag/23ai)
- [database (9)](https://rheodata.com/en-us/blog/tag/database)
- [goldengate 21c (9)](https://rheodata.com/en-us/blog/tag/goldengate-21c)
- [artificial intelligence (8)](https://rheodata.com/en-us/blog/tag/artificial-intelligence)
- [data analytics (8)](https://rheodata.com/en-us/blog/tag/data-analytics)
- [Google (7)](https://rheodata.com/en-us/blog/tag/google)
- [23ai AI vector search (6)](https://rheodata.com/en-us/blog/tag/23ai-ai-vector-search)
- [aws ec2 (6)](https://rheodata.com/en-us/blog/tag/aws-ec2)
- [aws ec2 compute (6)](https://rheodata.com/en-us/blog/tag/aws-ec2-compute)
- [ec2 (6)](https://rheodata.com/en-us/blog/tag/ec2)
- [ggs (6)](https://rheodata.com/en-us/blog/tag/ggs)
- [goldengate 19c (6)](https://rheodata.com/en-us/blog/tag/goldengate-19c)
- [install nginx (6)](https://rheodata.com/en-us/blog/tag/install-nginx)
- [23.4 (5)](https://rheodata.com/en-us/blog/tag/23-4)
- [AI Vector Search (5)](https://rheodata.com/en-us/blog/tag/ai-vector-search)
- [analytics (5)](https://rheodata.com/en-us/blog/tag/analytics)
- [classic to microservices (5)](https://rheodata.com/en-us/blog/tag/classic-to-microservices)
- [cloud-migration (5)](https://rheodata.com/en-us/blog/tag/cloud-migration)
- [data mesh (5)](https://rheodata.com/en-us/blog/tag/data-mesh)
- [database migration (5)](https://rheodata.com/en-us/blog/tag/database-migration)
- [goldengate microservices (5)](https://rheodata.com/en-us/blog/tag/goldengate-microservices)
- [11g (4)](https://rheodata.com/en-us/blog/tag/11g)
- [19c goldengate (4)](https://rheodata.com/en-us/blog/tag/19c-goldengate)
- [Azure (4)](https://rheodata.com/en-us/blog/tag/azure)
- [Database Modernization (4)](https://rheodata.com/en-us/blog/tag/database-modernization)
- [Google Cloud (4)](https://rheodata.com/en-us/blog/tag/google-cloud)
- [Oracle GoldenGate (4)](https://rheodata.com/en-us/blog/tag/oracle-goldengate)
- [autonomous database (4)](https://rheodata.com/en-us/blog/tag/autonomous-database)
- [cloud management (4)](https://rheodata.com/en-us/blog/tag/cloud-management)
- [cloud services (4)](https://rheodata.com/en-us/blog/tag/cloud-services)
- [data engineering (4)](https://rheodata.com/en-us/blog/tag/data-engineering)
- [data engineers (4)](https://rheodata.com/en-us/blog/tag/data-engineers)
- [data governance (4)](https://rheodata.com/en-us/blog/tag/data-governance)
- [heatwave (4)](https://rheodata.com/en-us/blog/tag/heatwave)
- [12.2.1.x (3)](https://rheodata.com/en-us/blog/tag/12-2-1-x)
- [12.3.x (3)](https://rheodata.com/en-us/blog/tag/12-3-x)
- [12c goldengate (3)](https://rheodata.com/en-us/blog/tag/12c-goldengate)
- [18c goldengate (3)](https://rheodata.com/en-us/blog/tag/18c-goldengate)
- [23c (3)](https://rheodata.com/en-us/blog/tag/23c)
- [AI Integration (3)](https://rheodata.com/en-us/blog/tag/ai-integration)
- [Database Administration (3)](https://rheodata.com/en-us/blog/tag/database-administration)
- [GoldenGate 23c (3)](https://rheodata.com/en-us/blog/tag/goldengate-23c)
- [MySQL (3)](https://rheodata.com/en-us/blog/tag/mysql)
- [Oracle Cloud Migration (3)](https://rheodata.com/en-us/blog/tag/oracle-cloud-migration)
- [Oracle Database 26ai (3)](https://rheodata.com/en-us/blog/tag/oracle-database-26ai)
- [adminclient (3)](https://rheodata.com/en-us/blog/tag/adminclient)
- [architecture of data pipelines (3)](https://rheodata.com/en-us/blog/tag/architecture-of-data-pipelines)
- [automation (3)](https://rheodata.com/en-us/blog/tag/automation)
- [batch processing (3)](https://rheodata.com/en-us/blog/tag/batch-processing)
- [big data (3)](https://rheodata.com/en-us/blog/tag/big-data)
- [data cleaning (3)](https://rheodata.com/en-us/blog/tag/data-cleaning)
- [data integration (3)](https://rheodata.com/en-us/blog/tag/data-integration)
- [data pipelines (3)](https://rheodata.com/en-us/blog/tag/data-pipelines)
- [data pipelines vs ETL pipelines (3)](https://rheodata.com/en-us/blog/tag/data-pipelines-vs-etl-pipelines)
- [data science (3)](https://rheodata.com/en-us/blog/tag/data-science)
- [data-replication (3)](https://rheodata.com/en-us/blog/tag/data-replication)
- [database-platforms (3)](https://rheodata.com/en-us/blog/tag/database-platforms)
- [enterprise data replication (3)](https://rheodata.com/en-us/blog/tag/enterprise-data-replication)
- [gcp (3)](https://rheodata.com/en-us/blog/tag/gcp)
- [hashicorp vault enterprise (3)](https://rheodata.com/en-us/blog/tag/hashicorp-vault-enterprise)
- [Agentic AI (2)](https://rheodata.com/en-us/blog/tag/agentic-ai)
- [Bring Your Own License (BYOL) Oracle (2)](https://rheodata.com/en-us/blog/tag/bring-your-own-license-byol-oracle)
- [Cloud Database (2)](https://rheodata.com/en-us/blog/tag/cloud-database)
- [Cloud modernization strategy (2)](https://rheodata.com/en-us/blog/tag/cloud-modernization-strategy)
- [Docker (2)](https://rheodata.com/en-us/blog/tag/docker)
- [EnterpriseDB (2)](https://rheodata.com/en-us/blog/tag/enterprisedb)
- [Flask (2)](https://rheodata.com/en-us/blog/tag/flask)
- [Google Cloud for Oracle workloads (2)](https://rheodata.com/en-us/blog/tag/google-cloud-for-oracle-workloads)
- [Legacy Oracle systems (2)](https://rheodata.com/en-us/blog/tag/legacy-oracle-systems)
- [Oracle AI Vector Search (2)](https://rheodata.com/en-us/blog/tag/oracle-ai-vector-search)
- [Oracle Cloud Infrastructure (2)](https://rheodata.com/en-us/blog/tag/oracle-cloud-infrastructure)
- [Oracle DBA skills in the cloud (2)](https://rheodata.com/en-us/blog/tag/oracle-dba-skills-in-the-cloud)
- [Oracle GoldenGate 23ai (2)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-23ai)
- [Oracle migration assessment (2)](https://rheodata.com/en-us/blog/tag/oracle-migration-assessment)
- [Oracle on GCP (2)](https://rheodata.com/en-us/blog/tag/oracle-on-gcp)
- [Snowflake (2)](https://rheodata.com/en-us/blog/tag/snowflake)
- [Snowflake cost optimization (2)](https://rheodata.com/en-us/blog/tag/snowflake-cost-optimization)
- [aws (2)](https://rheodata.com/en-us/blog/tag/aws)
- [azure ai studio (2)](https://rheodata.com/en-us/blog/tag/azure-ai-studio)
- [build mysql heatwave (2)](https://rheodata.com/en-us/blog/tag/build-mysql-heatwave)
- [cloud dba (2)](https://rheodata.com/en-us/blog/tag/cloud-dba)
- [cloud ready (2)](https://rheodata.com/en-us/blog/tag/cloud-ready)
- [cohere generate documentation (2)](https://rheodata.com/en-us/blog/tag/cohere-generate-documentation)
- [data-pipeline (2)](https://rheodata.com/en-us/blog/tag/data-pipeline)
- [database replication security (2)](https://rheodata.com/en-us/blog/tag/database-replication-security)
- [deployment (2)](https://rheodata.com/en-us/blog/tag/deployment)
- [docker adminclient (2)](https://rheodata.com/en-us/blog/tag/docker-adminclient)
- [golden gate (2)](https://rheodata.com/en-us/blog/tag/golden-gate)
- [goldengate cloud (2)](https://rheodata.com/en-us/blog/tag/goldengate-cloud)
- [goldengate migrations (2)](https://rheodata.com/en-us/blog/tag/goldengate-migrations)
- [goldengate parameter files (2)](https://rheodata.com/en-us/blog/tag/goldengate-parameter-files)
- [google postgresql migration (2)](https://rheodata.com/en-us/blog/tag/google-postgresql-migration)
- [ml (2)](https://rheodata.com/en-us/blog/tag/ml)
- [real-time data replication (2)](https://rheodata.com/en-us/blog/tag/real-time-data-replication)
- [0.12upgrade (1)](https://rheodata.com/en-us/blog/tag/0-12upgrade)
- [11.2.0.4 (1)](https://rheodata.com/en-us/blog/tag/11-2-0-4)
- [11g to 19c (1)](https://rheodata.com/en-us/blog/tag/11g-to-19c)
- [11g to 21c (1)](https://rheodata.com/en-us/blog/tag/11g-to-21c)
- [11g to 23c (1)](https://rheodata.com/en-us/blog/tag/11g-to-23c)
- [11g to OCI (1)](https://rheodata.com/en-us/blog/tag/11g-to-oci)
- [19.1.0.0.0 (1)](https://rheodata.com/en-us/blog/tag/19-1-0-0-0)
- [19.1.0.0.1 (1)](https://rheodata.com/en-us/blog/tag/19-1-0-0-1)
- [2024 (1)](https://rheodata.com/en-us/blog/tag/2024)
- [5.7 (1)](https://rheodata.com/en-us/blog/tag/5-7)
- [5.7 to 8.0 (1)](https://rheodata.com/en-us/blog/tag/5-7-to-8-0)
- [8.0 (1)](https://rheodata.com/en-us/blog/tag/8-0)
- [AI Agents (1)](https://rheodata.com/en-us/blog/tag/ai-agents)
- [AI Data Platform (1)](https://rheodata.com/en-us/blog/tag/ai-data-platform)
- [AI Infrastructure Management (1)](https://rheodata.com/en-us/blog/tag/ai-infrastructure-management)
- [AI Machine Learning (1)](https://rheodata.com/en-us/blog/tag/ai-machine-learning)
- [AI blog writing (1)](https://rheodata.com/en-us/blog/tag/ai-blog-writing)
- [AI business productivity (1)](https://rheodata.com/en-us/blog/tag/ai-business-productivity)
- [AI content creation (1)](https://rheodata.com/en-us/blog/tag/ai-content-creation)
- [AI data infrastructure (1)](https://rheodata.com/en-us/blog/tag/ai-data-infrastructure)
- [AI data management (1)](https://rheodata.com/en-us/blog/tag/ai-data-management)
- [AI data platform optimization (1)](https://rheodata.com/en-us/blog/tag/ai-data-platform-optimization)
- [AI database administration (1)](https://rheodata.com/en-us/blog/tag/ai-database-administration)
- [AI database management tools (1)](https://rheodata.com/en-us/blog/tag/ai-database-management-tools)
- [AI ethics content (1)](https://rheodata.com/en-us/blog/tag/ai-ethics-content)
- [AI governance (1)](https://rheodata.com/en-us/blog/tag/ai-governance)
- [AI inference bottlenecks (1)](https://rheodata.com/en-us/blog/tag/ai-inference-bottlenecks)
- [AI model deployment strategies (1)](https://rheodata.com/en-us/blog/tag/ai-model-deployment-strategies)
- [AI security (1)](https://rheodata.com/en-us/blog/tag/ai-security)
- [AI writing tools (1)](https://rheodata.com/en-us/blog/tag/ai-writing-tools)
- [AI-Driven-Revenue-Growth (1)](https://rheodata.com/en-us/blog/tag/ai-driven-revenue-growth)
- [AI-Native Applications (1)](https://rheodata.com/en-us/blog/tag/ai-native-applications)
- [AI-ROI (1)](https://rheodata.com/en-us/blog/tag/ai-roi)
- [AI-Ready Data (1)](https://rheodata.com/en-us/blog/tag/ai-ready-data)
- [AI-accuracy (1)](https://rheodata.com/en-us/blog/tag/ai-accuracy)
- [AI-compliance (1)](https://rheodata.com/en-us/blog/tag/ai-compliance)
- [AI-hallucination-prevention (1)](https://rheodata.com/en-us/blog/tag/ai-hallucination-prevention)
- [AI-powered database replication management (1)](https://rheodata.com/en-us/blog/tag/ai-powered-database-replication-management)
- [API authentication (1)](https://rheodata.com/en-us/blog/tag/api-authentication)
- [AWS S3 (1)](https://rheodata.com/en-us/blog/tag/aws-s3)
- [Apache Iceberg (1)](https://rheodata.com/en-us/blog/tag/apache-iceberg)
- [Apache Spark data platform (1)](https://rheodata.com/en-us/blog/tag/apache-spark-data-platform)
- [Atlanta database consultants (1)](https://rheodata.com/en-us/blog/tag/atlanta-database-consultants)
- [Azure Data Lake (1)](https://rheodata.com/en-us/blog/tag/azure-data-lake)
- [Big Query (1)](https://rheodata.com/en-us/blog/tag/big-query)
- [BigQuery Integration (1)](https://rheodata.com/en-us/blog/tag/bigquery-integration)
- [Business-Intelligence-Modernization (1)](https://rheodata.com/en-us/blog/tag/business-intelligence-modernization)
- [CLOB to VARCHAR (1)](https://rheodata.com/en-us/blog/tag/clob-to-varchar)
- [Change Data Capture GoldenGate Extract (1)](https://rheodata.com/en-us/blog/tag/change-data-capture-goldengate-extract)
- [Cloud Data Platform (1)](https://rheodata.com/en-us/blog/tag/cloud-data-platform)
- [Cloud database migration (1)](https://rheodata.com/en-us/blog/tag/cloud-database-migration)
- [Coordinated Replicat (1)](https://rheodata.com/en-us/blog/tag/coordinated-replicat)
- [Cortex Agents (1)](https://rheodata.com/en-us/blog/tag/cortex-agents)
- [Cosine distance Oracle (1)](https://rheodata.com/en-us/blog/tag/cosine-distance-oracle)
- [Cross-platform data monitoring (1)](https://rheodata.com/en-us/blog/tag/cross-platform-data-monitoring)
- [Customer-Experience-Optimization (1)](https://rheodata.com/en-us/blog/tag/customer-experience-optimization)
- [DBA burnout prevention (1)](https://rheodata.com/en-us/blog/tag/dba-burnout-prevention)
- [DBA productivity (1)](https://rheodata.com/en-us/blog/tag/dba-productivity)
- [DBA skills AI (1)](https://rheodata.com/en-us/blog/tag/dba-skills-ai)
- [Data Modernization (1)](https://rheodata.com/en-us/blog/tag/data-modernization)
- [Data Pipeline Architecture (1)](https://rheodata.com/en-us/blog/tag/data-pipeline-architecture)
- [Data Pipeline Management (1)](https://rheodata.com/en-us/blog/tag/data-pipeline-management)
- [Data Streaming (1)](https://rheodata.com/en-us/blog/tag/data-streaming)
- [Data Transformation (1)](https://rheodata.com/en-us/blog/tag/data-transformation)
- [Data pipeline troubleshooting (1)](https://rheodata.com/en-us/blog/tag/data-pipeline-troubleshooting)
- [Database Security (1)](https://rheodata.com/en-us/blog/tag/database-security)
- [Database lag monitoring (1)](https://rheodata.com/en-us/blog/tag/database-lag-monitoring)
- [Database migration strategy (1)](https://rheodata.com/en-us/blog/tag/database-migration-strategy)
- [Database migration vs. replication (1)](https://rheodata.com/en-us/blog/tag/database-migration-vs-replication)
- [Database replication blind spots (1)](https://rheodata.com/en-us/blog/tag/database-replication-blind-spots)
- [Database replication monitoring (1)](https://rheodata.com/en-us/blog/tag/database-replication-monitoring)
- [Database replication performance monitoring (1)](https://rheodata.com/en-us/blog/tag/database-replication-performance-monitoring)
- [Databricks comparison (1)](https://rheodata.com/en-us/blog/tag/databricks-comparison)
- [Delta Lake integration (1)](https://rheodata.com/en-us/blog/tag/delta-lake-integration)
- [Digital-Transformation-ROI (1)](https://rheodata.com/en-us/blog/tag/digital-transformation-roi)
- [EXTFILE (1)](https://rheodata.com/en-us/blog/tag/extfile)
- [EXTRAIL (1)](https://rheodata.com/en-us/blog/tag/extrail)
- [Edge computing AI (1)](https://rheodata.com/en-us/blog/tag/edge-computing-ai)
- [Enterprise AI Strategy (1)](https://rheodata.com/en-us/blog/tag/enterprise-ai-strategy)
- [Enterprise AI scalability (1)](https://rheodata.com/en-us/blog/tag/enterprise-ai-scalability)
- [Enterprise cloud migration (1)](https://rheodata.com/en-us/blog/tag/enterprise-cloud-migration)
- [Enterprise data migration (1)](https://rheodata.com/en-us/blog/tag/enterprise-data-migration)
- [Enterprise database replication monitoring (1)](https://rheodata.com/en-us/blog/tag/enterprise-database-replication-monitoring)
- [Forward Deployed Engineering (1)](https://rheodata.com/en-us/blog/tag/forward-deployed-engineering)
- [GPU memory optimization (1)](https://rheodata.com/en-us/blog/tag/gpu-memory-optimization)
- [GUI (1)](https://rheodata.com/en-us/blog/tag/gui)
- [Gemini Enterprise (1)](https://rheodata.com/en-us/blog/tag/gemini-enterprise)
- [GoldenGate 21c upgrade (1)](https://rheodata.com/en-us/blog/tag/goldengate-21c-upgrade)
- [GoldenGate 23ai to 26ai (1)](https://rheodata.com/en-us/blog/tag/goldengate-23ai-to-26ai)
- [GoldenGate 26ai new features (1)](https://rheodata.com/en-us/blog/tag/goldengate-26ai-new-features)
- [GoldenGate 26ai release notes (1)](https://rheodata.com/en-us/blog/tag/goldengate-26ai-release-notes)
- [GoldenGate 26ai upgrade (1)](https://rheodata.com/en-us/blog/tag/goldengate-26ai-upgrade)
- [GoldenGate AI integration (1)](https://rheodata.com/en-us/blog/tag/goldengate-ai-integration)
- [GoldenGate CDC configuration (1)](https://rheodata.com/en-us/blog/tag/goldengate-cdc-configuration)
- [GoldenGate DAA (1)](https://rheodata.com/en-us/blog/tag/goldengate-daa)
- [GoldenGate Extract user permissions (1)](https://rheodata.com/en-us/blog/tag/goldengate-extract-user-permissions)
- [GoldenGate Yugabyte support (1)](https://rheodata.com/en-us/blog/tag/goldengate-yugabyte-support)
- [GoldenGate certificate authentication (1)](https://rheodata.com/en-us/blog/tag/goldengate-certificate-authentication)
- [GoldenGate cutover planning (1)](https://rheodata.com/en-us/blog/tag/goldengate-cutover-planning)
- [GoldenGate deployment automation (1)](https://rheodata.com/en-us/blog/tag/goldengate-deployment-automation)
- [GoldenGate granular permissions setup (1)](https://rheodata.com/en-us/blog/tag/goldengate-granular-permissions-setup)
- [GoldenGate least privilege security (1)](https://rheodata.com/en-us/blog/tag/goldengate-least-privilege-security)
- [GoldenGate lifecycle management (1)](https://rheodata.com/en-us/blog/tag/goldengate-lifecycle-management)
- [GoldenGate migration guide (1)](https://rheodata.com/en-us/blog/tag/goldengate-migration-guide)
- [GoldenGate migration sizing (1)](https://rheodata.com/en-us/blog/tag/goldengate-migration-sizing)
- [GoldenGate monitoring and lag management (1)](https://rheodata.com/en-us/blog/tag/goldengate-monitoring-and-lag-management)
- [GoldenGate operational ownership (1)](https://rheodata.com/en-us/blog/tag/goldengate-operational-ownership)
- [GoldenGate password management (1)](https://rheodata.com/en-us/blog/tag/goldengate-password-management)
- [GoldenGate port configuration (1)](https://rheodata.com/en-us/blog/tag/goldengate-port-configuration)
- [GoldenGate replication lag detection (1)](https://rheodata.com/en-us/blog/tag/goldengate-replication-lag-detection)
- [GoldenGate response file (1)](https://rheodata.com/en-us/blog/tag/goldengate-response-file)
- [GoldenGate trail file management (1)](https://rheodata.com/en-us/blog/tag/goldengate-trail-file-management)
- [GoldenGate troubleshooting solutions (1)](https://rheodata.com/en-us/blog/tag/goldengate-troubleshooting-solutions)
- [GoldenGate unified console (1)](https://rheodata.com/en-us/blog/tag/goldengate-unified-console)
- [GoldenGateMCP (1)](https://rheodata.com/en-us/blog/tag/goldengatemcp)
- [Google Cloud Platform (1)](https://rheodata.com/en-us/blog/tag/google-cloud-platform)
- [Google Cloud Storage (1)](https://rheodata.com/en-us/blog/tag/google-cloud-storage)
- [Google-AlloyDB (1)](https://rheodata.com/en-us/blog/tag/google-alloydb)
- [HashiCorp (1)](https://rheodata.com/en-us/blog/tag/hashicorp)
- [Hybrid queries Oracle (1)](https://rheodata.com/en-us/blog/tag/hybrid-queries-oracle)
- [IT cost optimization (1)](https://rheodata.com/en-us/blog/tag/it-cost-optimization)
- [IT infrastructure simplification (1)](https://rheodata.com/en-us/blog/tag/it-infrastructure-simplification)
- [IT leadership mental health (1)](https://rheodata.com/en-us/blog/tag/it-leadership-mental-health)
- [Initial Load (1)](https://rheodata.com/en-us/blog/tag/initial-load)
- [Inventory management data lag (1)](https://rheodata.com/en-us/blog/tag/inventory-management-data-lag)
- [LLM inference optimization (1)](https://rheodata.com/en-us/blog/tag/llm-inference-optimization)
- [Large language model performance (1)](https://rheodata.com/en-us/blog/tag/large-language-model-performance)
- [MCP Server for Oracle (1)](https://rheodata.com/en-us/blog/tag/mcp-server-for-oracle)
- [MCP Server, (1)](https://rheodata.com/en-us/blog/tag/mcp-server)
- [Mental Health Awareness Month tech industry (1)](https://rheodata.com/en-us/blog/tag/mental-health-awareness-month-tech-industry)
- [Migration readiness (1)](https://rheodata.com/en-us/blog/tag/migration-readiness)
- [Model Context Protocol (1)](https://rheodata.com/en-us/blog/tag/model-context-protocol)
- [Model inference costs (1)](https://rheodata.com/en-us/blog/tag/model-inference-costs)
- [OMA assessment (1)](https://rheodata.com/en-us/blog/tag/oma-assessment)
- [ONNX embedding model Oracle (1)](https://rheodata.com/en-us/blog/tag/onnx-embedding-model-oracle)
- [Operating Model (1)](https://rheodata.com/en-us/blog/tag/operating-model)
- [Oracle 23ai features (1)](https://rheodata.com/en-us/blog/tag/oracle-23ai-features)
- [Oracle 26ai features (1)](https://rheodata.com/en-us/blog/tag/oracle-26ai-features)
- [Oracle AI Data Platform (1)](https://rheodata.com/en-us/blog/tag/oracle-ai-data-platform)
- [Oracle AI Solutions (1)](https://rheodata.com/en-us/blog/tag/oracle-ai-solutions)
- [Oracle Autonomous Database migration (1)](https://rheodata.com/en-us/blog/tag/oracle-autonomous-database-migration)
- [Oracle CPAT vs OMA comparison (1)](https://rheodata.com/en-us/blog/tag/oracle-cpat-vs-oma-comparison)
- [Oracle Database 23ai vectors (1)](https://rheodata.com/en-us/blog/tag/oracle-database-23ai-vectors)
- [Oracle Database 26ai vectors (1)](https://rheodata.com/en-us/blog/tag/oracle-database-26ai-vectors)
- [Oracle EBS migration (1)](https://rheodata.com/en-us/blog/tag/oracle-ebs-migration)
- [Oracle Exadata on Google Cloud (1)](https://rheodata.com/en-us/blog/tag/oracle-exadata-on-google-cloud)
- [Oracle GoldenGate 26ai (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-26ai)
- [Oracle GoldenGate AI diagnostics (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-ai-diagnostics)
- [Oracle GoldenGate Azure (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-azure)
- [Oracle GoldenGate Management (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-management)
- [Oracle GoldenGate REST API automation (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-rest-api-automation)
- [Oracle GoldenGate SQL Server permissions (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-sql-server-permissions)
- [Oracle GoldenGate automation (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-automation)
- [Oracle GoldenGate heartbeat (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-heartbeat)
- [Oracle GoldenGate least privilege security (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-least-privilege-security)
- [Oracle GoldenGate managed services (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-managed-services)
- [Oracle GoldenGate migration strategy (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-migration-strategy)
- [Oracle GoldenGate monitoring tools (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-monitoring-tools)
- [Oracle GoldenGate replication best practices (1)](https://rheodata.com/en-us/blog/tag/oracle-goldengate-replication-best-practices)
- [Oracle and Google Cloud AI (1)](https://rheodata.com/en-us/blog/tag/oracle-and-google-cloud-ai)
- [Oracle cloud cost optimization (1)](https://rheodata.com/en-us/blog/tag/oracle-cloud-cost-optimization)
- [Oracle cloud migration assessment (1)](https://rheodata.com/en-us/blog/tag/oracle-cloud-migration-assessment)
- [Oracle data replication 2026 (1)](https://rheodata.com/en-us/blog/tag/oracle-data-replication-2026)
- [Oracle data replication compliance (1)](https://rheodata.com/en-us/blog/tag/oracle-data-replication-compliance)
- [Oracle database migration to OCI (1)](https://rheodata.com/en-us/blog/tag/oracle-database-migration-to-oci)
- [Oracle replication governance (1)](https://rheodata.com/en-us/blog/tag/oracle-replication-governance)
- [Oracle replication lag diagnosis (1)](https://rheodata.com/en-us/blog/tag/oracle-replication-lag-diagnosis)
- [Oracle to cloud migration (1)](https://rheodata.com/en-us/blog/tag/oracle-to-cloud-migration)
- [Oracle vs Databricks (1)](https://rheodata.com/en-us/blog/tag/oracle-vs-databricks)
- [Oracle workload analysis (1)](https://rheodata.com/en-us/blog/tag/oracle-workload-analysis)
- [Oracle@Google Cloud (1)](https://rheodata.com/en-us/blog/tag/oraclegoogle-cloud)
- [Parallel Replicat (1)](https://rheodata.com/en-us/blog/tag/parallel-replicat)
- [Parquet (1)](https://rheodata.com/en-us/blog/tag/parquet)
- [RAG pipeline database (1)](https://rheodata.com/en-us/blog/tag/rag-pipeline-database)
- [REST API (1)](https://rheodata.com/en-us/blog/tag/rest-api)
- [Real-time AI processing (1)](https://rheodata.com/en-us/blog/tag/real-time-ai-processing)
- [SQL Server replication security best practices (1)](https://rheodata.com/en-us/blog/tag/sql-server-replication-security-best-practices)
- [Semantic search database (1)](https://rheodata.com/en-us/blog/tag/semantic-search-database)
- [Similarity search Oracle (1)](https://rheodata.com/en-us/blog/tag/similarity-search-oracle)
- [Snowflake Optima indexing (1)](https://rheodata.com/en-us/blog/tag/snowflake-optima-indexing)
- [Snowflake Search Optimization Service (1)](https://rheodata.com/en-us/blog/tag/snowflake-search-optimization-service)
- [Snowflake alternatives (1)](https://rheodata.com/en-us/blog/tag/snowflake-alternatives)
- [Snowflake automatic clustering (1)](https://rheodata.com/en-us/blog/tag/snowflake-automatic-clustering)
- [Snowflake budget monitoring (1)](https://rheodata.com/en-us/blog/tag/snowflake-budget-monitoring)
- [Snowflake cloud data warehouse performance (1)](https://rheodata.com/en-us/blog/tag/snowflake-cloud-data-warehouse-performance)
- [Snowflake cost governance (1)](https://rheodata.com/en-us/blog/tag/snowflake-cost-governance)
- [Snowflake cost management (1)](https://rheodata.com/en-us/blog/tag/snowflake-cost-management)
- [Snowflake cost reduction strategies (1)](https://rheodata.com/en-us/blog/tag/snowflake-cost-reduction-strategies)
- [Snowflake credit usage (1)](https://rheodata.com/en-us/blog/tag/snowflake-credit-usage)
- [Snowflake materialized views (1)](https://rheodata.com/en-us/blog/tag/snowflake-materialized-views)
- [Snowflake migration staffing (1)](https://rheodata.com/en-us/blog/tag/snowflake-migration-staffing)
- [Snowflake performance optimization (1)](https://rheodata.com/en-us/blog/tag/snowflake-performance-optimization)
- [Snowflake query acceleration service (1)](https://rheodata.com/en-us/blog/tag/snowflake-query-acceleration-service)
- [Snowflake query performance tuning (1)](https://rheodata.com/en-us/blog/tag/snowflake-query-performance-tuning)
- [Snowflake resource monitors (1)](https://rheodata.com/en-us/blog/tag/snowflake-resource-monitors)
- [Snowflake serverless compute costs (1)](https://rheodata.com/en-us/blog/tag/snowflake-serverless-compute-costs)
- [Snowflake spend attribution (1)](https://rheodata.com/en-us/blog/tag/snowflake-spend-attribution)
- [Snowflake warehouse optimization (1)](https://rheodata.com/en-us/blog/tag/snowflake-warehouse-optimization)
- [Snowflake warehouse right-sizing (1)](https://rheodata.com/en-us/blog/tag/snowflake-warehouse-right-sizing)
- [Token generation latency (1)](https://rheodata.com/en-us/blog/tag/token-generation-latency)
- [VECTOR datatype Oracle (1)](https://rheodata.com/en-us/blog/tag/vector-datatype-oracle)
- [VECTOR\_DISTANCE function (1)](https://rheodata.com/en-us/blog/tag/vector_distance-function)
- [Vector embeddings Oracle (1)](https://rheodata.com/en-us/blog/tag/vector-embeddings-oracle)
- [What's new GoldenGate 26ai (1)](https://rheodata.com/en-us/blog/tag/whats-new-goldengate-26ai)
- [access control (1)](https://rheodata.com/en-us/blog/tag/access-control)
- [activepass (1)](https://rheodata.com/en-us/blog/tag/activepass)
- [adb (1)](https://rheodata.com/en-us/blog/tag/adb)
- [add (1)](https://rheodata.com/en-us/blog/tag/add)
- [add credentials (1)](https://rheodata.com/en-us/blog/tag/add-credentials)
- [adminclient add credentials (1)](https://rheodata.com/en-us/blog/tag/adminclient-add-credentials)
- [administration (1)](https://rheodata.com/en-us/blog/tag/administration)
- [adw (1)](https://rheodata.com/en-us/blog/tag/adw)
- [ai failures 2024 (1)](https://rheodata.com/en-us/blog/tag/ai-failures-2024)
- [ai stratgies (1)](https://rheodata.com/en-us/blog/tag/ai-stratgies)
- [ai-architecture (1)](https://rheodata.com/en-us/blog/tag/ai-architecture)
- [all or nothing (1)](https://rheodata.com/en-us/blog/tag/all-or-nothing)
- [allowPublicKeyRetrieval (1)](https://rheodata.com/en-us/blog/tag/allowpublickeyretrieval)
- [alloydb (1)](https://rheodata.com/en-us/blog/tag/alloydb)
- [alter extract 21c (1)](https://rheodata.com/en-us/blog/tag/alter-extract-21c)
- [amazon (1)](https://rheodata.com/en-us/blog/tag/amazon)
- [ansible (1)](https://rheodata.com/en-us/blog/tag/ansible)
- [approximate-nearest-neighbor (1)](https://rheodata.com/en-us/blog/tag/approximate-nearest-neighbor)
- [automl (1)](https://rheodata.com/en-us/blog/tag/automl)
- [azure-cloud (1)](https://rheodata.com/en-us/blog/tag/azure-cloud)
- [azure-native (1)](https://rheodata.com/en-us/blog/tag/azure-native)
- [bastion (1)](https://rheodata.com/en-us/blog/tag/bastion)
- [bastion host configuartion (1)](https://rheodata.com/en-us/blog/tag/bastion-host-configuartion)
- [bastion setup oracle (1)](https://rheodata.com/en-us/blog/tag/bastion-setup-oracle)
- [bug 30193036 (1)](https://rheodata.com/en-us/blog/tag/bug-30193036)
- [bugs (1)](https://rheodata.com/en-us/blog/tag/bugs)
- [build a compute node in oci (1)](https://rheodata.com/en-us/blog/tag/build-a-compute-node-in-oci)
- [business-continuity (1)](https://rheodata.com/en-us/blog/tag/business-continuity)
- [certificate-based authentication (1)](https://rheodata.com/en-us/blog/tag/certificate-based-authentication)
- [change data capture (1)](https://rheodata.com/en-us/blog/tag/change-data-capture)
- [changing ssh keys (1)](https://rheodata.com/en-us/blog/tag/changing-ssh-keys)
- [channels (1)](https://rheodata.com/en-us/blog/tag/channels)
- [cloud cost control (1)](https://rheodata.com/en-us/blog/tag/cloud-cost-control)
- [cloud data platform cost control (1)](https://rheodata.com/en-us/blog/tag/cloud-data-platform-cost-control)
- [cloud migration readiness assessment (1)](https://rheodata.com/en-us/blog/tag/cloud-migration-readiness-assessment)
- [cloud-database-setup (1)](https://rheodata.com/en-us/blog/tag/cloud-database-setup)
- [cloud-sql-migration (1)](https://rheodata.com/en-us/blog/tag/cloud-sql-migration)
- [cloud-strategy (1)](https://rheodata.com/en-us/blog/tag/cloud-strategy)
- [cohere command (1)](https://rheodata.com/en-us/blog/tag/cohere-command)
- [compute (1)](https://rheodata.com/en-us/blog/tag/compute)
- [compute portability (1)](https://rheodata.com/en-us/blog/tag/compute-portability)
- [compute-instance (1)](https://rheodata.com/en-us/blog/tag/compute-instance)
- [connect to database via bastion host (1)](https://rheodata.com/en-us/blog/tag/connect-to-database-via-bastion-host)
- [connect to database via bastion host oci (1)](https://rheodata.com/en-us/blog/tag/connect-to-database-via-bastion-host-oci)
- [consultants (1)](https://rheodata.com/en-us/blog/tag/consultants)
- [content strategy (1)](https://rheodata.com/en-us/blog/tag/content-strategy)
- [cost-optimization (1)](https://rheodata.com/en-us/blog/tag/cost-optimization)
- [cryptographic authentication (1)](https://rheodata.com/en-us/blog/tag/cryptographic-authentication)
- [curl (1)](https://rheodata.com/en-us/blog/tag/curl)
- [daemon (1)](https://rheodata.com/en-us/blog/tag/daemon)
- [data encryption (1)](https://rheodata.com/en-us/blog/tag/data-encryption)
- [data fabric (1)](https://rheodata.com/en-us/blog/tag/data-fabric)
- [data governance framework (1)](https://rheodata.com/en-us/blog/tag/data-governance-framework)
- [data lake architecture (1)](https://rheodata.com/en-us/blog/tag/data-lake-architecture)
- [data lakehouse platform (1)](https://rheodata.com/en-us/blog/tag/data-lakehouse-platform)
- [data pipeline security (1)](https://rheodata.com/en-us/blog/tag/data-pipeline-security)
- [data platform selection (1)](https://rheodata.com/en-us/blog/tag/data-platform-selection)
- [data team workload management (1)](https://rheodata.com/en-us/blog/tag/data-team-workload-management)
- [database AI transformation (1)](https://rheodata.com/en-us/blog/tag/database-ai-transformation)
- [database administrators (1)](https://rheodata.com/en-us/blog/tag/database-administrators)
- [database capacity planning tools (1)](https://rheodata.com/en-us/blog/tag/database-capacity-planning-tools)
- [database certificate authentication (1)](https://rheodata.com/en-us/blog/tag/database-certificate-authentication)
- [database compliance audit replication (1)](https://rheodata.com/en-us/blog/tag/database-compliance-audit-replication)
- [database consolidation strategy (1)](https://rheodata.com/en-us/blog/tag/database-consolidation-strategy)
- [database credential management (1)](https://rheodata.com/en-us/blog/tag/database-credential-management)
- [database migration planning tools (1)](https://rheodata.com/en-us/blog/tag/database-migration-planning-tools)
- [database modernization AI (1)](https://rheodata.com/en-us/blog/tag/database-modernization-ai)
- [database replication management (1)](https://rheodata.com/en-us/blog/tag/database-replication-management)
- [database transformation consulting (1)](https://rheodata.com/en-us/blog/tag/database-transformation-consulting)
- [database-failover (1)](https://rheodata.com/en-us/blog/tag/database-failover)
- [database-vectors (1)](https://rheodata.com/en-us/blog/tag/database-vectors)
- [db\_owner risk SQL Server replication (1)](https://rheodata.com/en-us/blog/tag/db_owner-risk-sql-server-replication)
- [dba\_capture (1)](https://rheodata.com/en-us/blog/tag/dba_capture)
- [dba\_queues (1)](https://rheodata.com/en-us/blog/tag/dba_queues)
- [dbms\_aqadm.drop\_queue\_table (1)](https://rheodata.com/en-us/blog/tag/dbms_aqadm-drop_queue_table)
- [dbms\_comparison (1)](https://rheodata.com/en-us/blog/tag/dbms_comparison)
- [ddl (1)](https://rheodata.com/en-us/blog/tag/ddl)
- [direct initial load (1)](https://rheodata.com/en-us/blog/tag/direct-initial-load)
- [dml (1)](https://rheodata.com/en-us/blog/tag/dml)
- [docker goldengate (1)](https://rheodata.com/en-us/blog/tag/docker-goldengate)
- [docker images (1)](https://rheodata.com/en-us/blog/tag/docker-images)
- [dynamic (1)](https://rheodata.com/en-us/blog/tag/dynamic)
- [edb database (1)](https://rheodata.com/en-us/blog/tag/edb-database)
- [elephant database (1)](https://rheodata.com/en-us/blog/tag/elephant-database)
- [eliminate database password authentication (1)](https://rheodata.com/en-us/blog/tag/eliminate-database-password-authentication)
- [emd360 (1)](https://rheodata.com/en-us/blog/tag/emd360)
- [enable ddl (1)](https://rheodata.com/en-us/blog/tag/enable-ddl)
- [enterprise (1)](https://rheodata.com/en-us/blog/tag/enterprise)
- [enterprise AI (1)](https://rheodata.com/en-us/blog/tag/enterprise-ai)
- [enterprise AI implementation (1)](https://rheodata.com/en-us/blog/tag/enterprise-ai-implementation)
- [enterprise AI infrastructure (1)](https://rheodata.com/en-us/blog/tag/enterprise-ai-infrastructure)
- [enterprise data governance (1)](https://rheodata.com/en-us/blog/tag/enterprise-data-governance)
- [enterprise data integration (1)](https://rheodata.com/en-us/blog/tag/enterprise-data-integration)
- [enterprise data strategy (1)](https://rheodata.com/en-us/blog/tag/enterprise-data-strategy)
- [enterprise goldengate backup solution (1)](https://rheodata.com/en-us/blog/tag/enterprise-goldengate-backup-solution)
- [enterprise manager (1)](https://rheodata.com/en-us/blog/tag/enterprise-manager)
- [exception handling (1)](https://rheodata.com/en-us/blog/tag/exception-handling)
- [experts in oracle goldengate (1)](https://rheodata.com/en-us/blog/tag/experts-in-oracle-goldengate)
- [extract changes (1)](https://rheodata.com/en-us/blog/tag/extract-changes)
- [extract load transform (1)](https://rheodata.com/en-us/blog/tag/extract-load-transform)
- [extract transform load (1)](https://rheodata.com/en-us/blog/tag/extract-transform-load)
- [failures (1)](https://rheodata.com/en-us/blog/tag/failures)
- [fintech postgreSQL (1)](https://rheodata.com/en-us/blog/tag/fintech-postgresql)
- [firewalld goldengate (1)](https://rheodata.com/en-us/blog/tag/firewalld-goldengate)
- [firewalld microservices (1)](https://rheodata.com/en-us/blog/tag/firewalld-microservices)
- [fivetran (1)](https://rheodata.com/en-us/blog/tag/fivetran)
- [framework (1)](https://rheodata.com/en-us/blog/tag/framework)
- [frameworks (1)](https://rheodata.com/en-us/blog/tag/frameworks)
- [free tools (1)](https://rheodata.com/en-us/blog/tag/free-tools)
- [fresh data (1)](https://rheodata.com/en-us/blog/tag/fresh-data)
- [gemini (1)](https://rheodata.com/en-us/blog/tag/gemini)
- [genai (1)](https://rheodata.com/en-us/blog/tag/genai)
- [general information (1)](https://rheodata.com/en-us/blog/tag/general-information)
- [ggsci (1)](https://rheodata.com/en-us/blog/tag/ggsci)
- [ggsmon (1)](https://rheodata.com/en-us/blog/tag/ggsmon)
- [goldengate active passive (1)](https://rheodata.com/en-us/blog/tag/goldengate-active-passive)
- [goldengate backup automation (1)](https://rheodata.com/en-us/blog/tag/goldengate-backup-automation)
- [goldengate bug (1)](https://rheodata.com/en-us/blog/tag/goldengate-bug)
- [goldengate errors (1)](https://rheodata.com/en-us/blog/tag/goldengate-errors)
- [goldengate experts (1)](https://rheodata.com/en-us/blog/tag/goldengate-experts)
- [goldengate free (1)](https://rheodata.com/en-us/blog/tag/goldengate-free)
- [goldengate github integration (1)](https://rheodata.com/en-us/blog/tag/goldengate-github-integration)
- [goldengate high availiability (1)](https://rheodata.com/en-us/blog/tag/goldengate-high-availiability)
- [goldengate maa (1)](https://rheodata.com/en-us/blog/tag/goldengate-maa)
- [goldengate microservices port (1)](https://rheodata.com/en-us/blog/tag/goldengate-microservices-port)
- [goldengate microservices ports (1)](https://rheodata.com/en-us/blog/tag/goldengate-microservices-ports)
- [goldengate ogg-02028 (1)](https://rheodata.com/en-us/blog/tag/goldengate-ogg-02028)
- [goldengate parameter file backup (1)](https://rheodata.com/en-us/blog/tag/goldengate-parameter-file-backup)
- [google cloudsql (1)](https://rheodata.com/en-us/blog/tag/google-cloudsql)
- [google mysql migration (1)](https://rheodata.com/en-us/blog/tag/google-mysql-migration)
- [heatwave experts (1)](https://rheodata.com/en-us/blog/tag/heatwave-experts)
- [high performance mysql (1)](https://rheodata.com/en-us/blog/tag/high-performance-mysql)
- [human creativity AI (1)](https://rheodata.com/en-us/blog/tag/human-creativity-ai)
- [human vs AI writing (1)](https://rheodata.com/en-us/blog/tag/human-vs-ai-writing)
- [hybrid cloud data architecture (1)](https://rheodata.com/en-us/blog/tag/hybrid-cloud-data-architecture)
- [integrated extract oracle (1)](https://rheodata.com/en-us/blog/tag/integrated-extract-oracle)
- [integrated replicat oracle (1)](https://rheodata.com/en-us/blog/tag/integrated-replicat-oracle)
- [lic (1)](https://rheodata.com/en-us/blog/tag/lic)
- [license (1)](https://rheodata.com/en-us/blog/tag/license)
- [logmnr\_session$ (1)](https://rheodata.com/en-us/blog/tag/logmnr_session)
- [managed service provider (1)](https://rheodata.com/en-us/blog/tag/managed-service-provider)
- [managed services for database teams (1)](https://rheodata.com/en-us/blog/tag/managed-services-for-database-teams)
- [management (1)](https://rheodata.com/en-us/blog/tag/management)
- [migration compatibility validation (1)](https://rheodata.com/en-us/blog/tag/migration-compatibility-validation)
- [monitor oracle goldengate rest api (1)](https://rheodata.com/en-us/blog/tag/monitor-oracle-goldengate-rest-api)
- [monolithic database architecture (1)](https://rheodata.com/en-us/blog/tag/monolithic-database-architecture)
- [move off of oracle (1)](https://rheodata.com/en-us/blog/tag/move-off-of-oracle)
- [multi-cloud data platform (1)](https://rheodata.com/en-us/blog/tag/multi-cloud-data-platform)
- [oci bastion (1)](https://rheodata.com/en-us/blog/tag/oci-bastion)
- [oem emd360 (1)](https://rheodata.com/en-us/blog/tag/oem-emd360)
- [ogg deployments (1)](https://rheodata.com/en-us/blog/tag/ogg-deployments)
- [open table format (1)](https://rheodata.com/en-us/blog/tag/open-table-format)
- [oracle database (1)](https://rheodata.com/en-us/blog/tag/oracle-database)
- [preventing tech employee attrition (1)](https://rheodata.com/en-us/blog/tag/preventing-tech-employee-attrition)
- [reducing on-call burnout (1)](https://rheodata.com/en-us/blog/tag/reducing-on-call-burnout)
- [securing Oracle GoldenGate on SQL Server (1)](https://rheodata.com/en-us/blog/tag/securing-oracle-goldengate-on-sql-server)
- [tech team burnout (1)](https://rheodata.com/en-us/blog/tag/tech-team-burnout)
- [thought leadership (1)](https://rheodata.com/en-us/blog/tag/thought-leadership)
- [vector database consolidation (1)](https://rheodata.com/en-us/blog/tag/vector-database-consolidation)

See all

##### About RheoData

 RheoData is based out of Metro Atlanta, GA and provide expert Oracle, Microsoft, Google, and Snowflake services.  Let us  know how we can help!

##### Links

- [About Us](https://rheodata.com/who-we-are)
- [FrostCore](https://rheodata.com/frostcore)
- [RedCore](https://rheodata.com/redcore)
- [BlueCore](https://rheodata.com/bluecore)

##### Contact us

[hello@rheodata.com](mailto:hello@rheodata.com)

©RheoData2026. All Rights Reserved.

```json
{
  "@context" : "https://schema.org",
  "@type" : "Organization",
  "address" : {
    "@type" : "PostalAddress",
    "addressCountry" : "US",
    "addressRegion" : "GA"
  },
  "description" : "Elite specialist partner for Oracle, Snowflake, BigQuery, and AI-ready data platforms.",
  "email" : "hello@rheodata.com",
  "foundingDate" : "2020",
  "logo" : "https://rheodata.com/hubfs/RheoData%20-%20Logo%20-%20transparent-1.png",
  "name" : "RheoData",
  "sameAs" : [ "https://www.linkedin.com/company/rheodata" ],
  "url" : "https://rheodata.com"
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "WebSite",
  "name" : "RheoData",
  "potentialAction" : {
    "@type" : "SearchAction",
    "query-input" : "required name=search_term_string",
    "target" : "https://rheodata.com/search?q={search_term_string}"
  },
  "url" : "https://rheodata.com"
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "",
    "url" : ""
  },
  "dateModified" : "2026-04-17T17:31:04+0000",
  "datePublished" : "2025-10-30T17:41:53+0000",
  "description" : "artificial intelligence | RheoData Blog Posts",
  "headline" : "&lt;span id=&quot;hs_cos_wrapper_name&quot; class=&quot;hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text&quot; style=&quot;&quot; data-hs-cos-general-type=&quot;meta_field&quot; data-hs-cos-type=&quot;text&quot; &gt;rheodata_blog listing page&lt;/span&gt;",
  "image" : "",
  "mainEntityOfPage" : {
    "@id" : "https://rheodata.com/en-us/blog/tag/artificial-intelligence",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://rheodata.com/hubfs/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "In my last two posts I showed you what the Oracle Vector Datatype is and how to update existing data after adding a vector datatype column. In this post, we are going to quickly look at how to use those examples to implement a “similarity search” based on the vector stored in the vg_vec1 column of the table. Assumptions The prerequisites for this should be pretty straight forward, but I’ll make note of them here for reference. Oracle Database 23.4 (limited availability at the moment) python3.11 or later (what I’m using non-venv setup) python_oracledb (2.0.0 or later (limited availability)) LLM API Key (Using Cohere) With the prerequisites defined and ready to use, lets take a look at the code need implement a “similarity search” on top of the video game data stored in vector.video_games_vec. If we do a quick query of vector.video_games_vec table, we see that vectors are in place for every row of the table. SQL&gt; select id, title, vg_vec1 from VECTOR.VIDEO_GAMES_VEC order by id; With vectors in place, we now need to write some code that will compare the data in column vg_vec1 with a search term or question we are looking for. Python First we need to import the packages and define the LLM API key we need for python: #! /usr/local/bin/python3 import oracledb import cohere import os import sys import array #set Cohere API key api_key = “eOubN0Yyj8ORoDk6MYjr co = cohere.Client(api_key) As you can tell, we are importing the new oracledb package for python along with the package for cohere. The other packages are needed and are already installed with python. Within the same section, we are defining the API Key that is needed to run embeddings against Cohere. Next, we are setting up a few definitions/functions for the process. I broke these into functions that partition what is happening with the script. There are two functions that we are going to define – database connection and vectorization. Within the database connection function, we are simply making a call to connect to the database and return the connection for usage within the script. If connection cannot be made, then the connection is not returned. #define database connection function def database_connection():   try:       connection = oracledb.connect(           user=”,           password=”,           dsn=100.166.255.254:1521/”           )       print('connected’)       return connection   except:         print('Could not make a connection’) The next function is used to create embedding for the search term or question that we are looking for in the “similarity search”. Breaking this out into a function helps simplify the code and relegates the vectorization to a single step. Then the vector array of embeddings are retuned for further processing. #define LLM embedding model def cohere_vectorize(vInput):   data = vInput   response = co.embed(       texts=[data],       model='embed-english-light-v3.0’,       input_type=“search_query       )   vector_value = response.embeddings[0]     return vector_value Lastly, we create a function called main(). This is just to compartmentalize main code into a single spot. Something, I like to do from time to time. Within the main function is where all the work is done for the “similarity search”. We setup the connection to the database, the select statement that is going to be used, and what to do with the search. def main():     connection = database_connection()   with connection.cursor() as select_cursor:       select_stmt = select title, genres, license                       from vector.video_games_vec                       order by vector_distance(vg_vec1, :1, DOT)                       fetch first :2 rows only”         while True:           prompt_input = input('Search Games or Game Question: ‘)           if (prompt_input == exit”):                 break           if (prompt_input == ”):                 continue             fetch_num = input(How many records to fetch: “)           vec = cohere_vectorize(prompt_input)             vec2 = array.array(d, vec)           for(title, genres, license) in select_cursor.execute(select_stmt, [vec2, fetch_num]):                 print(\t + title + | + genres + | + license) A couple of things to understand about the code above. The select _stmt parameter defines the select statement that is used to query the database table and return a result set based on the vectors. Within this select statement, we are using vector_distance to compare two vectors – stored vector and new embedding vector for search. Then the algorithm used for the search – DOT. All this is done in the order by clause. Additionally, the query is limiting the results based on the first number or rows fetched. To give a better view of this query, it looks like this: select title, genres, license from vector.video_games_vec order by vector_distance(vg_vec1, :1, DOT) fetch first :2 rows only You will notice that we are using :1 and :2 within the SQL statement. These are used by the cursor.execute function in python to pass values. Another thing to point out is that the returned embedding needs to be converted to a format that can be used by SQL. This is done by taking the embedding and converting it to a FLOAT64 value. This is done with the line in the main function as: vec2 = arrary.array(“d”, vec) Seems trivial, but is needed for the search to work. Lastly, we simply make a call to the main function for execution. Once execute, we can provide our search term or question related to a video game and get information back on the video game. Note: One thing to note, the for loop in the main function that executes the select statement needs to be updated if more columns are added to the select statement. Look at the below video, you will see that we are searching for various video games and looking to get the name of the video game, the genre it belongs in, and if it requires a license. The output is prefixed with a tab and broken up with pipe symbols. See this simple vector search in action: here When it comes down to the effectiveness of the search, it will be based on the quality of your data. If you have clean data, then your searches will be more efficient and yield better results.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Similarity Search with Oracle’s Vector Datatype",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/similarity_search_oracle_vector_datatype-1024x640-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/similarity-search-oracle-vector-datatype",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "At Oracle Cloud World 2023, Oracle announced they were moving toward enabling Artificial Intelligence (AI) within many of their products. Oracle is making huge steps forward for many people to use AI daily. As 2023 ended, many other industry leaders announced they would do the same. Regarding databases, Oracle is the only industry leader that leverages its core product for many different things. For at least a decade, Oracle has turned the Oracle Database into a Swiss army knife by enabling it to support different modern data types, analytics, and development paradigms, all in one product. It is only natural that with the AI revolution starting, Oracle would build a data type that enables organizations to use Retrieval-Augmented Generation (RAG) within the databases. By adding a “vector” datatype, Oracle simplifies data architectures and the building of RAG or Private-LLM configurations for organizations. Where is the Vector datatype? If you use an Oracle Database today, you will not immediately have access to the Vector datatype. Even if you use the latest version, 23.3.x.x, on Oracle Cloud Infrastructure (OCI), you cannot access this datatype (Believe me, I tried). You have to be part of the beta program for the next release of Oracle Database, which will provide you details on the Vector datatype before the initial release in 23.4. In short, and for the moment, if you are not part of the beta program, this datatype will be available soon! What is the Vector datatype? The Vector datatype is a modern datatype designed to efficiently store, manage, and index massive amounts of high-dimensional data. This data type is growing in interest and is used to create additional value for generative AI use cases and applications. Vector Settings? The vector datatype is used within standard Oracle tables. This enables database schemas to use the data in real-time. The following command shows a simple example: sql&gt; CREATE TABLE rd_vectors (id NUMBER, embed VECTOR); This simple example shows that the vector datatype can be set as a column within a table. Enabling it this way allows you to specify vectors of different dimensions with different formats. Think of this as a catch-all setting for vector data. It is great to have a catch-all; however, you can limit the type of vectors created by imposing constraints on the stored data. In this example, you can only store up to 1024 dimensions, and they must be formatted as INT8 (8-bit integers): sql&gt; CREATE TABLE rd_vectors_int8 (id NUMBER, embed VECTOR(1024, INT8); With this complex example, you must have 1024 dimensions, each of which must be 8-bit integers (INT8). The number of dimensions should be greater than 0 with no limit. The dimensions formats are INT8, FLOAT32, and FLOAT64. FLOAT32 and FLOAT64 are the IEEE standards, and the Oracle Databases will automatically cast the values as needed. Examples of setting additional dimension formats are: sql&gt; CREATE TABLE rd_vectors_int8 (id NUMBER, embed VECTOR(1024, FLOAT32); sql&gt; CREATE TABLE rd_vectors_int8 (id NUMBER, embed VECTOR(1024, FLOAT64); Vector Forms? With the understanding of Vector settings, there are a few forms that a vector can take. Understanding these forms will help in defining the proper vector for your requirements: Important Note: A vector can be NULL, but the dimensions cannot be NULL. (example: You cannot have [(1.1, NULL, 2.3)] Examples of Vectors: Now that you understand the Vector datatype, how does the Oracle Database see the datatype? The following SQL example shows that the table rd_vector is created with only vector datatypes using different variations. sql&gt; CREATE TABLE vector.rd_vector ( v1 VECTOR, v2 VECTOR(3, FLOAT32), v3 VECTOR(2, FLOAT64), v4 VECTOR(1, INT8), v5 VECTOR(1, *), v6 VECTOR(*, FLOAT32), v7 VECTOR(*, *) ); sql&gt; desc vector.rd_vector; Name                                         Null?   Type ----------------------------------------- -------- —————————————— V1                                                         VECTOR(*, *)  V2                                                         VECTOR(3, FLOAT32) V3                                                         VECTOR(2, FLOAT64) V4                                                         VECTOR(1, INT8) V5                                                         VECTOR(1, *) V6                                                         VECTOR(*, FLOAT32) V7                                                         VECTOR(*, *) Hopefully, Oracle will release Oracle Database 23.4 soon! There will be many opportunities to use vector data types as organizations expand their usage of Generative AI. Enjoy!",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Oracle’s Vector Datatype",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/oracle-vector-datatype-1-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/vector-datatype",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "Oracle has recently, May 2, 2024, unveiled Oracle Database 23ai, packed with innovative AI capabilities that are transforming the way businesses manage and analyze their data. Among these cutting-edge features is AI Vector Search, a game-changer for organizations seeking to unlock valuable insights from complex vector data. Understanding Vector Data and its Challenges Vector data, also known as feature vectors, is a representation of data in a high-dimensional space. Each data point is described by a set of numerical features, forming a vector. This type of data is commonly used in machine learning and artificial intelligence applications, such as image recognition, natural language processing, and recommendation systems. One of the main challenges with vector data is the difficulty in performing similarity searches. Traditional database systems excel at querying structured data using exact matches or range queries, but they fall short when it comes to finding similar vectors based on their proximity in high-dimensional space. This is where Oracle’s AI Vector Search steps in. Revolutionizing Vector Data Search with AI AI Vector Search in Oracle Database 23ai introduces a paradigm shift in the way vector data is queried and analyzed. Here’s how it works: 1. Indexing Vector Data Oracle Database 23ai allows users to index vector data, treating it as a first-class data type. This means that vector data can be efficiently stored, indexed, and queried just like any other data type in the database. 2. Similarity Searches Oracle AI Vector Search enables users to perform similarity searches on vector data. Instead of looking for exact matches, this feature allows you to find vectors that are similar to a given query vector. It measures the proximity of vectors in high-dimensional space and returns the most similar results. 3. Fast and Scalable Searches The power of Oracle AI Vector Search lies in its ability to perform these searches at lightning speed, even in large and high-dimensional vector spaces. Oracle has optimized the indexing and search algorithms to handle massive datasets efficiently, ensuring that similarity searches are fast and scalable. 4. Integration with Machine Learning Oracle AI Vector Search is seamlessly integrated with Oracle’s in-database machine learning capabilities. This means that users can combine vector data with other types of data, apply machine learning algorithms, and build end-to-end AI applications directly within the database. Use Cases Oracle AI Vector Search opens up a world of possibilities for organizations across various industries: 1. Image and Video Search With AI Vector Search, you can perform content-based image and video searches. For example, a media company can enable users to search for similar images or videos based on visual content, even if they don’t have specific keywords or metadata. 2. Recommendation Systems Vector data is commonly used in recommendation systems to model user preferences. Oracle AI Vector Search can be leveraged to find similar users or items, enabling more accurate and personalized recommendations. 3. Natural Language Processing (NLP) In natural language processing (NLP), vector representations of words and documents (word embeddings) can be used for semantic searches. AI Vector Search allows for finding documents similar in meaning to a given query, even if they don’t share the exact keywords. Conclusion Oracle Database 23ai’s AI Vector Search capability is a breakthrough for organizations seeking to harness the power of vector data. By providing efficient and scalable similarity searches, Oracle is revolutionizing the way businesses analyze and derive insights from complex data. With this feature, organizations can unlock the full potential of their AI and machine learning initiatives, driving innovation and gaining a competitive edge. To explore more about Oracle Database 23ai and its AI capabilities, refer to the official Oracle blog: Oracle 23ai AI: Now Generally Available or contact RheoData @ hello@rheodata.com",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Unlocking the Power of AI Vector Search in Oracle Database 23ai",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/oracle-database-23ai-ai-vector-search-1-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/23ai-ai-vector-search",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "What is LLMOps? LLMOps, or Large Language Model Operations, refers to the set of practices and tools used to manage, streamline, and operationalize large language models. LLMOps is a cross between LLM and MLOps. LLMs – are a type of foundation model that cna perform a variety of NLP task, including generating and classifying texts, answering questions in a conversational manner and translating texts. MLOps – is a discipline that streamlines and automates the lifecycle of ML models. LLMOps applies MLOps principles and infrastructure to LLMs. Making LLMOps a subset of MLOps. The Need for LLMOps Wtih more and more Large Language Models (LLMs), like Cohere Command, OpenAI GPT-4, and many others, coming to market; they will require more resources and drive more complexity. Due to these reasons, they will require specialized techniques and infrasturcutre for their develoment, deployment, and maintenance. Below are some fo the challenges of operationalizing LLMs: Model Size and Complexity – LLMs are very large and complex models. This makes them difficult to train, fine-tune, and deploy. Data Requirements – LLMs require massive datasets of text and code to train. This can be a challenge to collect and curate. Infrastructure Requirements – LLMs require a lot of computational power and storage. This can be a challenge to provision and manage. Performance – Ensuring LLM performance at scale requires computational resources, time, and highly skilled professionals, which are not always available. Security and Privacy – LLMs can be used to generate sensitive text, such as personal information or creative content. It is important to implement security and privacy measures to protect this data. Interpretability – LLMs are often opaque and difficult to interpret. This can make it challenging to understand how they make decisions and to ensure that they are not biased. Ethical Considerations – LLMs may be subject to bias, toxicity, hallucinations, or other ethical concerns. It is important to implement guardrails to protect against these risks. LLMOps aim to address the challenges associated with managing LLMs and ensure they are efficient and effective for production environments. LLMOps help deploym applications with LLM models securely, efficently, and at scale! What is inclued with LLMOps? Key aspects of LLMOps are: Data Creation, Curation and Management – Organizing, storing, and preprocessing the large amounts of data required for training language models. This includes data versioning, ingestions, and data quality checks. Model Training – Implementing scalable and distributed training processes to train large language models. Includes techniques like parallel processing, distributed computing, and automated hyperparameter tuning. Model Deployment – Deploying large language models into production systems, often as APIs or services. Requires infrastructure setup, load balancing, scaling, and monitoring, to ensure reliable and efficient model serving. Monitoring and Maintenance – Ongoing monitoring of model performance, health, and resource usage. Includes tracking metrics, detecting anomalies and triggering alerts for prompt action. Regular model updates and retraining may also be part of the maintenance process. Security and Governance – Ensuring the security and privacy of large language models and their associated data. This includes access controls, encryption, compliance with regulatory requirements and ethical considerations like Responsible AI. CI/CD – Adopting CI-CD practices to automate the testing, validation, and deployment of LLMs. This enables faster iterations and reduces the risk of errors in production. Collaboration and Reproducibility – LLMOps emphasizes collaboration and reproducibility of LLMs. This includes version control, experiment tracking and documentation to enable collaboration among data scientists, engineers and researchers. Many of these key aspects are similar to MLOps. In LLMOps, they are extended and adjusted to meet the requirments of LLMs. LLMOps Landscape With the ever growing LLM landscape, LLMOps is constantly evolving, new tools and platforms are being developed to meet the needs of organizations. Here are a few: Open Source: Huggnig Face – a leading open-source software company that provides tools and libraries for build and using LLMs. MLRun – an open-source orchestration framework that can be used to operationalize LLMS. Enables scaling and automation of ML and LLM pipelines in a streamlined manner. Vendor Based (sampling): Microsoft – with the Azure platform, Microsoft has provided commercialized access to OpenAI’s LLMs and recently released Azure AI Studio to help develop, scale, and streamline LLMOps. Oracle – On the Oracle Cloud Infrastructure (OCI), has provided access to Cohere’s LLMs through the AI &amp; Automation services. Access to LLMs is done through APIs and development in various languages.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "What is LLMOps?",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/LLMOps-What2Know-1-1024x560-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/what-is-llmops",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "This post is the first of a three-part series where I’m going to show you how to use pre-configured machine learning models to embed vectors into the Oracle Database. Before I dive into how to load a pre-trained machine learning models with ONNX, it is helpful to know what is an ONNX file? And how do you create one to use with the Oracle Database. What is an ONNX model? ONNX is an open-source format designed for machine-learning models. Ensuring cross-platform compatibility and supports major languages and frameworks, facilitating easy and efficient model exchanges. ONNX stands for Open Neural Network Exchange. It is a popular choice that enables deployment, integration, and exchange of models consistently across platforms that support cloud, web, edge, and mobile experiences on all the major platforms. While the name implies neural networks, the framework also encompasses models that employ other algorithms. Many leading machine learning development frameworks, such as TensorFlow, Pytorch, and Scikit-learn to name a few, offer the capability to convert models into the ONNX format. ONNX models offer flexibility to export and import models in many languages, such as Python, C++, or C#. Oracle Database 23ai (latest pending-release) supports importing these externally trained ONNX files into the Oracle Database and perform in-database scoring, that is, applying a machine learning model to new data, through ONNX Runtime. ONNX Runtime is an inference engine for ONNX models. With the ONNX Runtime implementation, you can run machine learning models efficiently in ONNX format. An imported ONNX model is represented as an in-database object, similar to the Oracle Machine Learning (OML) model objects. With the appropriate permissions, ONNX models can be imported for machine learning tasks and used to score models using OML scoring SQL operators. An example of importing an ONNX model is as follows: Begin  DBMS_DATA_MINING.IMPORT_ONNX_MODEL(‘’, ‘’, JSON(‘{“function”: “embedding”, “embeddingOutput”: “embedding”, “input”: { “input”: [“DATA”} }}’)); End; / In this example, the IMPORT_ONNX_MODEL procedure is used to import an ONNX model. The following is a break down on what is needed: : is a BLOB argument that holds the ONNX representation of the model. Example: = my_embedding_model.onnx : a user-defined name of the model. This is the name that will be used by SQL when called. Example: = doc_model Obtaining a pre-trained model: Before you can load a pre-trained model, you must have a pre-trained model. Where can you get a pre-trained model? To import a pre-trained model, you first must have the Python packaged called Oracle Machine Learning Utilities (omlutils). Sadly, at the time of this writing, the only way to get this package is via Oracle as a wheel package. Once you have the omlutils package, it needs to be uploaded to the server where the Oracle Database is running. Installing OMLUTILS Hopefully, when Oracle Database 23ai is fully released the omlutils binaries will be included in the Oracle Database Home. Like what Oracle has done with Python 3.12. The next couple of steps will give a overview of how to install the omlutilis into the local Python environment. 1. Verify you have Python 3.12 installed. $ export ORACLE_HOME_23ai=/opt/oracle/product/23ai/dbhome_1 $ cd $ORACLE_HOME_23ai/python/bin $ python -V $ export PATH=$ORACLE_HOME_23ai/python/bin:$PATH $ python -v In both of the “python -V” commands, you should be returned Python 3.12.0 2. Create an ONNX directory $ cd ~ $ mkdir onnx 3. Unzip the omlutils.zip file in the onnx directory $ cd ~/onnx $ unzip ./omlutils.zip -d . 4. After the omlutils have been unzipped, install the package using pip $ cd ~/onnx $ python -m pip install -r requirements.txt $ python -m pip install omlutils-0.13.0-cp312-cp312-linux_x86_64.whl Included Pre-Trained Models With the omlutils package installed it comes with seventeen different pre-trained models that can be used for embedding vectors. These pre-trained models are ready to use immediately and can be seen from Python using the show_preconfigured() function. 1. ‘sentence-transformers/all-mpnet-base-v2', 2. 'sentence-transformers/all-MiniLM-L6-v2', 3. 'sentence-transformers/multi-qa-MiniLM-L6-cos-v1', 4. 'ProsusAI/finbert', 5. 'medicalai/ClinicalBERT', 6. 'sentence-transformers/distiluse-base-multilingual-cased-v2', 7. 'sentence-transformers/all-MiniLM-L12-v2', 8. 'BAAI/bge-small-en-v1.5', 9. 'BAAI/bge-base-en-v1.5', 10. 'taylorAI/bge-micro-v2', 11. 'intfloat/e5-small-v2', 12. 'intfloat/e5-base-v2', 13. 'prajjwal1/bert-tiny', 14. 'thenlper/gte-base', 15. 'thenlper/gte-small', 16. 'TaylorAI/gte-tiny', 17. 'infgrad/stella-base-en-v2’ The steps to see these pre-configured models is as follows from an interactive Python prompt: $ python &gt;&gt;&gt; from omlutils import EmbeddingModel, EmbeddingModelConfig &gt;&gt;&gt; em = EmbeddingModel(model_name=sentence-transformers/all-MiniLM-L6-v2”) &gt;&gt;&gt; emc = EmbeddingModelConfig() &gt;&gt;&gt; emc.show_preconfigured() &gt;&gt;&gt; exit() $ To convert one of these pre-configured models into ONNX file, the steps are as follows: Again, you are using an interactive Python prompt here. For model recalibrations, these steps can be put into a python script that can run on a regular basis. $ cd ~/onnx $ python &gt;&gt;&gt; from omlutils import EmbeddingModel, EmbeddingModelConfig &gt;&gt;&gt; em = EmbeddingModel(model_name=sentence-transformers/all-MiniLM-L6-v2”) &gt;&gt;&gt; em.export2file(all-MiniLM-L6-v2,output_dir=.”) &gt;&gt;&gt; exit() $ When you look in the ~/onnx directory, you will see a ONNX file the matches the name of the pre-configured model. In this example the file name is all-MiniLM-L6-v2.onnx. Summary To round all this out. In the upcoming release of the Oracle Database 23ai, you will have the ability to take an open-source machine learning model and embed the model to the database. Once the model is embedded in the database, you can then use the model to create vectors on existing data or update vectors with these models; enabling a vector database in a secure environment while powering private Retrieval Augmentation Generation (RAG) in diverse envrionments.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Embedding Machine Learning Models in the Oracle Database: Create an ONNX model",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/ONNX-embedding-1-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/onnx-in-oracle-database",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "If you have been following the last few blog posts, this is the final one with regards to setting up similarity search with Oracle’s upcoming vector datatype. This unique datatype enables you to be similarity search within your applications quickly and easily while keeping everything secure behind Oracle standard security of the Oracle database. If you have not keep up with the last few posts, you can go back and review the other three parts. These posts were designed to provide you with the basics of using Oracle’s Vector datatype, updating existing tables, and using similarity search from the command line. Part 1: https://rheodata.com/vector-datatype/ Part 2: https://rheodata.com/oracle-vector-datatype-updating-table-data/ Part 3:https://rheodata.com/similarity-search-oracle-vector-datatype/ In this post, we are going to look at extending Part 3 by creating a simple Flask Application to do the similarity search through a web page. To do this, there had to be a few minor changes to the previously illustrated Python code. Let’s dive in and see how a similarity search can be done via a web page. Prerequisites: Like Part 3, the prerequisites are with additional added for Flask: Oracle Database 23.4 (limited availability) Python 3.11 or later python_oracledb (2.0.0 or later (limited availability) LLM API Key (Cohere) Flask 3.0.2 Werkzeug 3.0.1 With the prerequisites set, we can now start looking at the code that will define the following application (see image below). Python/HTML This time around we are going to look at two different files – HTML and Python. This is what makes up the Flask Application we are using for this simple similarity search. The underlying table being used is the same as Part 3 – vector.video_games_vec. Before we jump into the Python code, we need to define a template for the HTML page (index.html). This is the main page of the application.                   Video Game Search:                                               Besides the CSS information, the key items to review ar the items in curly brackets (). This is how Flask setups and uses items returned from the Python code. If you would like more on Flask and how it works with HTML – check out this page: https://flask.palletsprojects.com/en/3.0.x/ Now for Python … Finally! The python code in this example is similar to the one in Part 3; however, it has been broken down into a few more functions to make it easier to use with Flask. The first thing that needs to be done is import all the required packages for the application to work: import oracledb import cohere import array import time import secrets from flask import Flask, render_template, request, redirect, url_for from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired What you will notice here is the import of Flask and Werkzeug related items. There a good bit of items that needed to be imported but makes the application easier to develop. To keep items simple, we defined the database connection into its own function. This allows us to call for the connection and get the connection in return. This is a simplified function, but keep in mind that this will only work against an Oracle Database 23c (23.4 – Limited Availability). #define database connection function def database_connection():   try:       connection = oracledb.connect(           user=vector”,           password=“”,           dsn=“xxx.xxx.xxx.xxx:1521/freepdb1”           )       print('connected’)       return connection   except:         print('Could not make a connection’) Next, we are going to define how to vectorize the video game title we are going to search for. Breaking this out into separate function allows us to call and return the vector value at anytime within the application. #define LLM embedding model def cohere_vectorize(vInput):   co = cohere.Client(0Yyj8ORoDk6MYjSb8”)   data = vInput   response = co.embed(     texts=[data],       model='embed-english-light-v3.0’,       input_type=“search_query       )   vector_value = response.embeddings[0]     return vector_value The variable “vInput” is the title that we want to vectorize for our search. The last function that we are going to define is a function to vectorize the video game title then turns it into a FLOAT64 vector that can be used with SQL for searching the database. Then return the vector string. def exec_vec(text):       vec = cohere_vectorize(text)       vec2 = array.array(d, vec)         return vec2 Application With the functions we needed defined, we can now setup the application to perform the search of the vector.video_games_vec table. First thing we need to do, is define the application. This done with the following statements: app = Flask(__name__) app.secret_key = secrets.token_hex(16) Then we need to define a class for the form itself: class Form(FlaskForm):   text = StringField('Video Game Search: ', validators=[DataRequired()])     submit = SubmitField('Submit’) Next, tell the application how to route to the page and what cURL functions to use: @app.route('/', methods=('GET', 'POST’)) Lastly, we need to define a function for the index.html page. This is simply called index(). This function sets up the following: calls the form class variables/lists needed SQL statement to use opens the database connection validate the form retrieve the required information closes the database connection The index() function looks as follows: def index():   form = Form()   output_titles = []   output_ids = []   output_genres = []   output_console = []     binds = []   select_stmt = select id, title, genres, console                   from vector.video_games_vec                   order by vector_distance(vg_vec1, :1, DOT), id                   fetch first 5 rows only”     connection = database_connection()   if form.validate_on_submit():       title = exec_vec(form.text.data)       with connection.cursor() as cursor:           for (id, title, genere, console,) in cursor.execute(select_stmt, [title]):               output_ids.append(id)               output_titles.append(title)               output_genres.append(genere)               output_console.append(console)               #print(output_titles)               #put all columns in a single list       binds = list(zip(output_ids, output_titles, output_genres, output_console))         #print(binds)       return render_template('index.html', form=form, output=binds)     connection.close()     return render_template('index.html', form=form, output=None) if __name__ == __main__”:     app.run(debug=True) A couple of key items to point out in this function. The first is the SQL statement. The select statement defines what we are looking for in the vector.video_games_vec table. In this case we are looking for ID, TITLE, GENRES, and CONSOLE. Then we are looking and ordering by the distance between each title by using the VECTOR_DATABASE function using DOT notation, then ordering by ID. Lastly, we are only fetching the first five rows only. When this application executes this SQL statement against the vector.video_games_vec table, we will be using TITLE to find the video game in the table. All rows that are returned are then broken into four different lists. Then the lists are zipped together to give us all the information for the record via the binds list. Lastly, we are telling the application to return the binds list to the output area on the index.html page before closing the connect to the database. You can use this link to see similarity search in action: Video Game Similarity Search Other items to understand You may have noticed that some video games returned more titles than expected. This is because of: We are limiting the result set to the first five rows. This is normal behavior when the result set doesn’t have exactly five of the title. The proximity of the additional titles compared to the title being searched for",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Similarity Search with Oracle’s Vector Datatype, Python, and Flask",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/similariity-search-flask-1-1024x474-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/similarity-search-python-flask",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "In my last blog post on Oracle’s Vector data type, I simply showed you how the datatype is used within an Oracle table. In this blog post, we are going to dive a bit deeper and provide some context with it regardiing to updating a table with existing data. To start, we are going to look at an external table that provides data on video games. This external table is only going to be used to pull in the data we want to us. The outline of the external table is: drop table vector.video_games; create table vector.video_games ( Title VARCHAR2(50), Features.Handheld? VARCHAR2(50), Features.Max Players NUMBER, Features.Multiplatform? VARCHAR2(50), Features.Online? VARCHAR2(15), Metadata.Genres VARCHAR2(50), Metadata.Licensed? VARCHAR2(15), Metadata.Publishers VARCHAR2(50), Metadata.Sequel? VARCHAR2(15), Metrics.Review Score NUMBER, Metrics.Sales NUMBER, Metrics.Used Price NUMBER, Release.Console VARCHAR2(50), Release.Rating VARCHAR2(5), Release.Re-release? VARCHAR2(15), Release.Year NUMBER, Length.All PlayStyles.Average NUMBER, Length.All PlayStyles.Leisure NUMBER, Length.All PlayStyles.Median NUMBER, Length.All PlayStyles.Polled NUMBER, Length.All PlayStyles.Rushed NUMBER, Length.Completionists.Average NUMBER, Length.Completionists.Leisure NUMBER, Length.Completionists.Median NUMBER, Length.Completionists.Polled NUMBER, Length.Completionists.Rushed NUMBER, Length.Main + Extras.Average NUMBER, Length.Main + Extras.Leisure NUMBER, Length.Main + Extras.Median NUMBER, Length.Main + Extras.Polled NUMBER, Length.Main + Extras.Rushed NUMBER, Length.Main Story.Average NUMBER, Length.Main Story.Leisure NUMBER, Length.Main Story.Median NUMBER, Length.Main Story.Polled NUMBER, Length.Main Story.Rushed” NUMBER ) ORGANIZATION EXTERNAL ( default directory dir_temp ACCESS PARAMETERS (   RECORDS DELIMITED BY NEWLINE   FIELDS TERMINATED BY ‘,'   OPTIONALLY ENCLOSED BY ‘'   ) LOCATION ('video_games.csv’) ) reject limit unlimited; As you can see, there are a lot data points that we can use. To make this a bit simpler, we are only going to use the first 16 columns. This means we need to create a standard heap table that reference these columns. create table vector.video_games_vec (   title VARCHAR2(50),   handheld VARCHAR2(50),   maxplayers NUMBER,   multiplatform VARCHAR2(50),   availiableonline VARCHAR2(15),   genres VARCHAR2(50),   license VARCHAR2(15),   publishers VARCHAR2(50),   sequel VARCHAR2(15),   reviewscore NUMBER,   usedprice NUMBER,   sales NUMBER,   console VARCHAR2(50),   rating VARCHAR2(5),   rerelease VARCHAR2(15),   rereleaseyear NUMBER ); Notice the difference in table names. The standard heap table has an ending of “vec” compared to the external table. This is to keep our processes separate. At the same time, after we insert data into the heap table, we are only going to use the heap table. Insert data into heap table (vector.video_games_vec) based on the data in the external table (vector.video_games). insert into vector.video_games_vec; select Title”, Features.Handheld?”, Features.Max Players”, Features.Multiplatform?”, Features.Online?”, Metadata.Genres”, Metadata.Licensed?”, Metadata.Publishers, Metadata.Sequel?”, Metrics.Review Score”, Metrics.Sales”, Metrics.Used Price”, Release.Console”, Release.Rating”, Release.Re-release?”, “Release.Year from vector.video_games; In table vector.video_games_vec, we should now have a bit more than 1200 records. select count(*) from vector.video_games_vec; Returns 1209 Now we have a data set to work with. We are going to leave the external table (vector.video_games) in place for additional tests later. Add a vector column In order to use the vector.video_games table for semantic searches, we need to add a column for a vector. Since we do not know the number dimensions for the vectors or the formatting, lets assume that all data will be of any format with an unlimited dimensions. Our alter table command then looks like this: SQL&gt; alter table vector.video_games_vec add (vg_vec VECTOR(*,*)); If we do a describe on the table, we will see the vector: Name Null? Type ---------------- ----- ------------ ID NOT NULL NUMBER(38) TITLE VARCHAR2(50) HANDHELD VARCHAR2(50) MAXPLAYERS NUMBER MULTIPLATFORM VARCHAR2(50) AVAILIABLEONLINE VARCHAR2(15) GENRES VARCHAR2(50) LICENSE VARCHAR2(15) PUBLISHERS VARCHAR2(50) SEQUEL VARCHAR2(15) REVIEWSCORE NUMBER USEDPRICE NUMBER SALES NUMBER CONSOLE VARCHAR2(50) RATING VARCHAR2(5) RERELEASE VARCHAR2(15) RERELEASEYEAR NUMBER VG_VEC VECTOR However, it doesn’t tell us size of the vector. This is limitation in the VSCode interface we are using. If we go to a command prompt, we can run the same commands and see the size of the vector. SQL&gt; desc vector.video_games_vec; Name Null? Type ------------------------------ -------- —————————————— ID NOT NULL NUMBER(38) TITLE VARCHAR2(50) HANDHELD VARCHAR2(50) MAXPLAYERS NUMBER MULTIPLATFORM VARCHAR2(50) AVAILIABLEONLINE VARCHAR2(15) GENRES VARCHAR2(50) LICENSE VARCHAR2(15) PUBLISHERS VARCHAR2(50) SEQUEL VARCHAR2(15) REVIEWSCORE NUMBER USEDPRICE NUMBER SALES NUMBER CONSOLE VARCHAR2(50) RATING VARCHAR2(5) RERELEASE VARCHAR2(15) RERELEASEYEAR NUMBER VG_VEC VECTOR(*,*) When we query the vector.video_games_vec and look for the vector, we will see that no vector information is available. SQL&gt; set linesize 150; SQL&gt; select title, vg_vec from vector.video_games_vec where rownum &lt;=5;        ID TITLE VG_VEC ---------- -------------------------------------------------- ———————————————————————————————————————— 133 Battles of Prince of Persia 134 GripShift 135 Marvel Nemesis: Rise of the Imperfects 136 Scooby-Doo! Unmasked 137 Viewtiful Joe: Double Trouble! At this point, we need a way to update the column with vector embeddings. One approach is that we can create our own vectors, but we will not be doing that in this post. Instead, we are going to use Python and make a call to a Large Language Model (LLM) like Cohere or ChatGPT to get our embeddings. With deciding on using a LLM to embed our table data, the following questions need to be asked: Do we embed the whole row? Do we embed individual columns? For this post, we are going to embed a single column. This column we are going to use is “Title”. To update the vector column for all rows within the table, we need to ensure that a primary key is defined. In our case, the primary key is “ID”. Python To update all the records in the table, we need to loop through all the records and update the record based on the primary key. In this case, the primary key is “ID”. First, we need to import the required Python packages: #Setup imports required import os import sys import array import time import oracledb import cohere Then we need to setup our API key for Cohere. Keep in mind that the testing API key for Cohere can only do ten calls per minute. If you need to do large tables, hundreds plus records, you may need to get a production key. #set Cohere API key api_key = “triZDP9cGrfwtxwb99IgM3hrt3txs co = cohere.Client(api_key) With imports and api key set, we now need to setup a database connection. With python there are multiple ways of making a connection; in this case we are going to define database connection function that can be used later. #define database connection function def database_connection():   try:       connection = oracledb.connect(           user=”,           password=”,           dsn=xxx.xxx.xxx.xxx:1521/”           )       print('connected’)       return connection     except: print('Could not make a connection’) Next, we are defining the SQL statements that are going to be ran to identify the records we want, how to update the vector column, and then select the updated records to confirm that they were updated. These are set as variables within the script as follows: fetch_query = select id, title from vector.video_games_vec where id between 71 and 75 order by id” select_query = select id, title, vg_vec1 from vector.video_games_vec where id between 71 and 75 order by id” sql_update = update vector.video_games_vec set vg_vec1 = :1 where id = :2” Notice that we are using a simple “between” statement with the SQL statements to limit the number of rows. This is only for testing purposes and not to make the script automated. Next, we are going to connect to the database based on the previously defined function. connection = database_connection() Everything we need to update our table is now in place. Using the connection, we are going to setup another cursor for querying the data and then looping through it and update the required rows. with connection.cursor() as query_cursor:   #prepare the select statement     query_cursor.prepare(fetch_query)   #define arrays being used   ids = []   data = []   vec = []   vrows = []     rows_returned = 0   #execute the select statement     query_cursor.execute(fetch_query)   #get all the rows/data returned     rows = query_cursor.fetchall()   #get the number of rows returned     rows_returned = query_cursor.rowcount   print('Got ' + str(rows_returned) + ' rows’)     #print(rows[0])     #Process row into list sets   for row in rows:       ids.append(row[0])       dat = 'query: ' + row[1]         data.append(dat)   #Get length of lists for the ids (in this case 10)     id_len = len(ids)   #Vectorize the data within one interation     for x in range(0, 1):       response = co.embed(           texts=data,           model='embed-english-light-v3.0’,           input_type=“search_query             )         #format and remember vectors for all records returned       for y in range(0, id_len):           vec = response.embeddings[y]           #Set vector to FLOAT32             #vec2 = array.array(f, vec)           #Set vector to FLOAT64           vec2 = array.array(d, vec)           #append add the ids and embeddings to an array             vrows.append([ids[y], vec2])             print(Tuple -&gt;  + str(ids[y]) + ', '+ str(vec))             #Update tuple in table           try:               update_cursor = connection.cursor()               update_cursor.setinputsizes(None, oracledb.DB_TYPE_VECTOR)               update_cursor.execute(sql_update, [vec2, ids[y]])               connection.commit()           except:                 print(Unable to update table\n”) #Select the records that have been updated. try:   select_cursor = connection.cursor()   select_cursor.prepare(select_query)     select_cursor.execute(select_query)   for row in select_cursor:         print(row) except:     print(Cannot select from table”) Once we run this python code, we now have records in the database updated with vectors that are related to the title of the video game. In the next blog post, we will take a look at how to do a semantic search using python and the Oracle Vector Datatype.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Oracle Vector Datatype – Updating table data",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/Oracle-Vector-Datatype-Updating-1-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/oracle-vector-datatype-updating-table-data",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "articleBody" : "If you work in the IT industry long enough, you start to see messaging or wording of items to repeat itself. In the case, we are going to take a look at the term “pipeline”. But what exactly is a “pipeline”? What is its purpose? How many different variations are there? In this post, we will take a look at the different types of pipelines there seems to be within the IT industry. What is a Pipeline? Data Pipeline In a general sense, a pipeline is a series of operations that are chained together to accomplish a goal. The output of one operation becomes the input of the next operation, until the desired goal is reached. This process can be visualized as a series of pipelines interconnected where data flows from one to the next; along the way data is either quickly moved or manupliated along the way. For example, suppose you want to move data from database A (source) to Kafka (target). The pipeline would look like: Capture all changed data/transactions Ship data/transactions Apply data/transactions to Kafka topic This is an over simplified example of a pipeline that is used to move data from a relational databases to a publication platform; yet it is considered a data pipeline. These types of “pipelines” can be chained together to build a data fabric or data mesh. Tools like Oracle GoldenGate or Oracle Cloud Infrastructure GoldenGate (OCI GoldenGate) can be used to build these pipelines between heterogenous platforms, on-premises and across clouds. Two types of Data Pipelines Batch Processing Batch processing is the most common data pipleline. This was a critical type of pipeline in the early years of the IT industry and enabled organizations to move large amounts of data from one system to another. This type of pipeline is not essential for analtyics, yet it is typically associated with ETL/ELT processes. In many cases, when batch processing is used timing of the execution is not critcal and often happens at night. Stream Processing Stream processing is starting to become the standard in the IT industry today. Through stream processing data is continously updated based on changes that occur between systems; also known as events. Data that is processed through this type of pipeline is stored in topic and can be subscribed to by outside system. Enabling quicker ingestion of data for organizational use. Elements of a Data Pipeline CI/CD Pipeline A Continous Integration/Continous Delivery (CI/CD) pipeline automates software delievery process from a software delievery point-of-view. This type of pipeline does the following: Builds code Runs tests (unit tests, QA tests, etc.) (CI) Deploys new versions of the application (CD) By building CI/CD pipelines, the building and delievery of applications are automated, removes manual errors, provide standard feedback to developers, and enables faster product iterations. Elements of a CI/CD Pipeline A CI/CD pipeline may seem to be more of an overhead process, but it is not. It should be viewed as a runnable specification of steps needed to deliver a software package between versions of releases. Without a CI/CD pipeline, developers and systems administrators would still need to perform the same steps in a manual process, hence being less productive. Most CI/CD pipeliens typically have the following stages: Faiure through any of the stages typically triggers a notification to let the responsible parties know about the cause. Otherwise, the only. notifications are sent after each successful deployment of the application. Machine Learning Pipelines If we take a look at Python with the Scikit-Learn packages, pipelining is used with machine learning processing and resolve issues like data leakage in testing setups. Pipelines, in this case, function by allwoing linear series of data transformations to be linked together resulting in a measurable modeling process. The objective is to gurantee that all phase within a pipeline are limited to the data available within the pipeline. The scikit-learn packages provides built-in functions for building pipelines (sklearn.pipeline &amp; sklearn.make_pipeline), which simplifies the pipeline construction. A typical pipeline for Machine Learning using python with the scikit-learn package may look like the following: Loading Data Data Preprocessing Splitting of data Transformations Predictions and Evaluations The below image illistrates what the pipelien looks like in concept: AI Pipelines AI pipelines or machine learning pipelines (above) are interconnected or streamlined collection of operations. As data works though machine learning systems, the data is stored in collections and used to train models. Essentially, AI pipelines are “workflows” or interactive paths through which data moves through a machine learning platform. An AI pipeline/workflow is generallly made up of the following: Data Ingestion Data Cleaning Preprocessing Modeling Deployment The AI pipeline (workflow) moves information from collection to collection until it reaches the final deployment and represents an iterative process that continously feeds new information to machine learning/AI systems for AIs to learn and process. How does ML Pipelines share AI Pipelines? Understanding what AI Pipelines are, getting an understanding of what is happening is benefitical. There are seveal stages that AI has to work through as part of the “learning” process. These stages are: Preprocessing Learning Evaluation Prediction Each one of these stages are used by an AI as follows: Preprocessing – are the steps and methods that Machine Learning performs during initial modeling. These sub-steps include cleaning data, structuring data, and preparing it for AI learning Learning – is comprised of different models that are generated by Machine Learning algorithms. These different models are: Supervised Learning – providing machine learning algorithms with examples of expected output Unsupervised Learning – machine learning algorithms use data sets to learn about the inherent patterns in the data and how to best use the data for a specific task Reinforement Learning – action-and-reward teaching Deep Learning – teaching that uses layers of neural networks to facilitae machine learning for complext tasks like patter recognition for physical systems, facial and image recognition Evaluation – is driven by a “trained” brain that was created by machine learning algrothms and evaluated against data provided by the end user. At this stage, the AI is execpting to recieve information from the user that matches what the AI has been trained with. The below images illstrates what an AI pipeline looks like in concept: Summary In this artical, we learned that there a few different types of pipelines and that the industry term of “pipeline” can be used for many different topics and discussions. Although the term “pipeline” has become synonomous with many different processes, the core concept is still conveying data through a series of steps while acting upon that data in some way. As the industry and organizations begin to transition into more into the AI/LLM space, having a firm understanding of what type of pipelines are used will benefit and enable organizations to adopt new technolgoies and processes.",
  "author" : {
    "@type" : "Person",
    "name" : "Bobby Curtis",
    "sameAs" : "",
    "url" : "https://rheodata.com/en-us/blog/author/bobby-curtis"
  },
  "dateModified" : "10/11/2025",
  "datePublished" : "10/11/2025",
  "headline" : "Different pipelines for the masses",
  "image" : {
    "@type" : "ImageObject",
    "height" : 400,
    "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/Imported_Blog_Media/different_pipelines-1-1024x683-1.png",
    "width" : 750
  },
  "mainEntityOfPage" : "https://rheodata.com/en-us/blog/different-pipelines-masses",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://50642793.fs1.hubspotusercontent-na1.net/hubfs/50642793/RheoData%20-%20Logo%20-%20transparent-1.png"
    },
    "name" : "RheoData",
    "url" : "rheodata.com"
  }
}
```