Release Update 23.8 Features

Additional Predicate Support with Hybrid Vector Search

Hybrid vector search queries can now have additional WHERE clause predicates on columns other than the indexed columns.

Hybrid vector search combines vector-distance and text-based search in a single query. There are situations where it is beneficial to add an additional filter predicate on columns that are not covered by the vector or text-based indexes. The FILTER_BY field provides a method to supply additional filter predicates using standard SQL operators.

View Documentation

Client Support for SPARSE Vectors

Sparse vectors are now supported by JDBC and OPD.NET client drivers.

Sparse vectors are vectors that typically have a large number of dimensions, but only a few of those dimensions have non-zero values. Because sparse vectors only store non-zero values, their use can improve efficiency and save storage space. ODP.NET and JDBC now supports sparse vector types enabling efficient interaction with sparse vector data through these client drivers. 
 

View Documentation

Dynamic Statistics for PL/SQL Functions

Dynamic statistics support has been enhanced for PL/SQL functions used in SQL WHERE clauses and TABLE functions. Long-running PL/SQL functions can increase SQL parse times if they are used with dynamic statistics, so global-level and fine-grained controls are provided to configure which functions should be included or excluded.

Cardinality can be difficult to estimate when optimizing SQL statements containing PL/SQL functions. This can lead to poor SQL execution plans and poor SQL performance. The ability to control and use dynamic statistics with PL/SQL functions enables the optimizer to find better execution plans, which leads to improved overall database performance.

View Documentation

Elastic Vector Memory Management

The vector memory pool can be configured to dynamically grow or shrink to accomodate new or changing HNSW indexes.

HNSW vector indexes reside in the Vector Memory Pool in the Database's SGA. Creating an HNSW Index is dependent upon the pool being adequately sized to accommodate the index, and subsequent changes to the underlying base-table can result in the size of the HNSW index changing. With Elastic Vector Memory Management, the pool automatically resizes to accommodate all HNSW Indexes dynamically. 

View Documentation

Included Columns Support for JSON, BLOB and CLOB Data Types

Included Columns in IVF (Neighbor Partition) vector indexes can now be of type JSON, BLOB or CLOB.

Included Columns permit additional non-vector columns in a base table to be stored in an IVF (Neighbor Partition) vector index. By storing the extra columns in the index, the query execution no longer needs an additional table access to retrieve the underlying columns from the base table.

View Documentation

JSON Type Modifier Enhancements: Data Size and Array Specifications

You can specify the maximum size in bytes for a JSON-type column.

For type modifier ARRAY, you can specify:

  • A (single) scalar type for all of the array elements
  • Whether array elements can be JSON null
  • The maximum number of array elements
  • Whether to store array elements sorted in ascending order

Specifying a size limit for a JSON-type column and constraining array size, element type, and storage order can lead to more efficient handling of the stored JSON data.

View Documentation

JSON to Duality Migrator: Hints Configuration Field

The hints configuration field for duality views can map primary-key columns to subobject fields, map SQL data types to fields, and disable sharing of data underlying a subobject.

You can obtain more control over the mapping between the documents supported by duality view and their underlying relational data:

  1. Which document fields should correspond to primary-key columns
  2. Which SQL data types should underlie particular fields
  3. Whether to normalize particular objects in a document

This feature enhances the ability of developers to leverage JSON documents for data access using the highly efficient relational data storage model, without compromising simplicity or efficiency.

View Documentation

JSON_TEXTCONTAINS and JSON_EXISTS Support in DBMS_HYBRID_VECTOR.SEARCH

The DBMS_HYBRID_VECTOR.SEARCH API now supports a way for users to specify optional JSON_EXISTS and JSON_TEXTCONTAINS clauses as part of their hybrid search.

Writing complex queries requires the ability to further constrain hybrid (semantic and textual) search by JSON_EXISTS and JSON_TEXTCONTAINS when working with complex JSON data. This feature lets you design sophisticated applications that better satisfy users' search criteria.

View Documentation

Oracle Database Cloud Backup Module for Azure Blob Storage

The Oracle Database Cloud Backup Module for Azure Blob Storage enables Oracle Database to send backups to and recover from Microsoft Azure Blob Storage. This backup module is compatible with Oracle Databases deployed on-premises or on Azure cloud. Support for writing backups to Azure Blob Storage for Oracle-managed database services is not available. Database administrators can use RMAN commands, RMAN scripts, and Oracle Enterprise Manager to perform backup and recovery operations with Azure Blob Storage.

You can run Oracle Databases in many different locations, and the backup module for Azure Blob Storage provides on-premises and Azure users with more flexibility for backup storage locations.

View Documentation

Restricted Execution Contexts for In-Database JavaScript

The PURE option can be specified on Multilingual Engine (MLE) environments and JavaScript inline call specifications to create restricted JavaScript contexts in which interaction with database functionality is not possible.

Creating restricted JavaScript execution contexts using the PURE option gives you a convenient way to limit capabilities of JavaScript code running in the database. A JavaScript program executing in a restricted context is guaranteed not to modify database tables or use PL/SQL packages, regardless of database privileges currently in effect. Common data processing use cases with user-defined functions require only computations on function inputs. In these scenarios, restricted contexts provide a safety net, prohibiting unwanted database modifications—for example, when using third-party or open-source JavaScript libraries.

In the context of AI Vector Search, JavaScript functions can be used as user-defined vector distance metrics when creating an HNSW index. Only JavaScript functions marked with the PURE option are allowed on HNSW indexes.

View Documentation

Sparse Vector Support in PL/SQL

Sparse vectors are now supported in PL/SQL.

Sparse vectors are vectors that typically have a large number of dimensions, but only a few of those dimensions have non-zero values. Because sparse vectors only store non-zero values, their use can improve efficiency and save storage space. Native support in PL/SQL allows sparse vectors to be created and used directly from within PL/SQL.

View Documentation

User-Defined Vector Distance Functions

AI vector search supports custom, user-defined distance metrics. Proprietary and/or domain-specific distance metrics can be used in addition to the standard built-in distance metrics.

Vector search operations are often based on standard distance metrics such as Euclidean, Cosine, and Dot Product. However, there are situations where domain-specific or proprietary metrics may be required. User-defined vector distance functions allow users to create their own custom metrics using JavaScript functions.

View Documentation