Oracle DBMS_VECTOR
Version 26ai

General Information
Library Note Morgan's Library Page Header
The best Oracle News for FY2026

Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
Purpose In Database Artificial Intelligence (AI) Searches. Contains support for load, create index, search, accuracy reporting, and LangChain support.
AUTHID CURRENT_USER
Constants
Name Data Type Value
 General
PREFERENCE_CHUNKER VARCHAR2(7) 'CHUNKER'
PREFERENCE_VECTORIZER VARCHAR2(10) 'VECTORIZER'
Data Types TYPE vector_array_t AS TABLE OF CLOB;
Dependencies SELECT name FROM dba_dependencies WHERE referenced_name = 'DBMS_VECTOR' UNION
SELECT referenced_name FROM dba_dependencies WHERE name = 'DBMS_VECTOR' ORDER BY 1;


Returns 44 objects
Dependencies
ALL_CREDENTIALS DBMSPRIV_CAPTURE JSON_KEY_LIST
ALL_INDEXES DBMS_STANDARD JSON_OBJECT
DBA_DB_LINKS DBMS_SYSTEM PLITBLM
DBMS_ASSERT DBMS_UTILITY UTL_ENCODE
DBMS_CREDENTIAL DBMS_VECTOR_CHAIN UTL_HTTP
DBMS_CRYPTO DBMS_VECTOR_INTERNAL UTL_I18N
DBMS_DATA_MINING DBMS_VECTOR_LIB UTL_RAW
DBMS_LOG DUAL VECTOR_ARRAY_T
DBMS_METADATA JSON_ARRAY_T V_$PARAMETER
DBMS_PDB_LIB JSON_ELEMENT_T  
Documented Yes: Partial
Exceptions
Error Code Reason
ORA-20001 EXCP_CRED_NOT_EXIST
ORA-20002 EXCP_PROVIDER_ERR
ORA-20003 EXCP_GU_ERR (General Error)
First Available 23ai
Security Model Owned by SYS with EXECUTE granted to PUBLIC.
Source {ORACLE_HOME}/rdbms/admin/dbmsvector.sql
{ORACLE_HOME}/rdbms/admin/prvtvector.plb
Subprograms
 
CHECK_MAX_CALLS (new 23ai)
Undocumented dbms_vector.check_max_calls(
method_name   IN VARCHAR2,
provider_name IN VARCHAR2,
params        IN JSON);
TBD
 
CREATE_CHECKPOINT (new 23ai)
This procedure takes a full checkpoint for an HNSW index dbms_vector.create_checkpoint(
idx_owner IN VARCHAR2,
idx_name  IN VARCHAR2);
TBD
 
CREATE_CREDENTIAL (new 23ai)
Store authentication information in the database dbms_vector.create_credential(
credential_name IN VARCHAR2,
params          IN JSON);
DECLARE
 aiCred json_object_t;
BEGIN
  aiCred := json_object_t();
  aiCred.put('USER_OCID', 'user ocid')
  aiCred.put('TENANCY_OCID', 'tenancy ocid value');
  aiCred.put('COMPARTMENT_OCID', 'compartment ocid value');
  aiCred.put('PRIVATE_KEY', 'private key value');
  aiCred.put('FINGER_PRINT', 'fingerprint value');

  dbms_output.put_line(credObj.TO_STRING);
  dbms_vector.creeate_credential(credential_name => 'ORA_AICRED', params=> json(jo.TO_STRING));
END;
/
 
CREATE_INDEX (new 23ai)
Creates a vector index dbms_vector.create_index(
idx_name                IN VARCHAR2,
table_name              IN VARCHAR2,
idx_vector_col          IN VARCHAR2,
idx_include_cols        IN VARCHAR2 DEFAULT NULL,
idx_partitioning_scheme IN VARCHAR2 DEFAULT 'LOCAL',
idx_organization        IN VARCHAR2,
idx_distance_metric     IN VARCHAR2 DEFAULT 'COSINE',
idx_accuracy            IN NUMBER   DEFAULT 90,
idx_parameters          IN CLOB,
idx_parallel_creation   IN NUMBER   DEFAULT 1);
TBD
 
DISABLE_CHECKPOINT (new 23ai)
Disables the Checkpoint feature for a vector index user and index name dbms_vector.disable_checkpoint(
idx_owner IN VARCHAR2 DEFAULT NULL,
idx_name  IN VARCHAR2 DEFAULT NULL);
TBD
 
DROP_CREDENTIAL (new 23ai)
Drop authentication credential from the database dbms_vector.drop_credential(credential_name IN VARCHAR2);
exec dbms_vector.drop_credential('ORA_AICRED');

PL/SQL procedure successfully completed.
 
DROP_ONNX_MODEL (new 23ai)
Drop ONNX model dbms_vector.drop_onnx_model(
model_name IN VARCHAR2,
force      IN BOOLEAN DEFAULT FALSE);
exec dbms_vector.drop_onnx_model('doc_model', TRUE);

PL/SQL procedure successfully completed.
 
ENABLE_CHECKPOINT (new 23ai)
Enables the Checkpoint feature for a vector index user and index name dbms_vector.enaable_checkpoint(
idx_owner IN VARCHAR2 DEFAULT NULL,
idx_name  IN VARCHAR2 DEFAULT NULL,
tbs_name  IN VARCHAR2 DEFAULT NULL);
TBD
 
GET_INDEX_STATUS (new 23ai)
Describes the status of a vector index creation dbms_vector.get_index_status(
owner_name IN VARCHAR2,
index_name IN VARCHAR2);
TBD
 
INDEX_ACCURACY_QUERY (new 23ai)
Accuracy reporting query

Overload 1
dbms_vector.index_accuracy_query(
owner_name      IN VARCHAR2,
index_name      IN VARCHAR2,
qv              IN VECTOR,
top_k           IN NUMBER,
target_accuracy IN NUMBER)
RETURN VARCHAR2;
TBD
Overload 2 dbms_vector.index_accuracy_query(
owner_name  IN VARCHAR2,
index_name  IN VARCHAR2,
qv          IN VECTOR,
top_k       IN NUMBER,
query_param IN JSON)
RETURN VARCHAR2;
TBD
 
INDEX_ACCURACY_REPORT (new 23ai)
Computes accuracy using the captured query vectors for a given finding dbms_vector.index_accuracy_report(
owner_name IN VARCHAR2,
index_name IN VARCHAR2,
start_time IN TIMESTAMP WITH TIME ZONE := NULL,
end_time   IN TIMESTAMP WITH TIME ZONE := NULL)
RETURN NUMBER;
TBD
 
INDEX_VECTOR_MEMORY_ADVISOR (new 23ai)
Determines the vector memory size that is needed for a vector index

Overload 1
dbms_vector.index_vector_memory_advisor(
index_type     IN  VARCHAR2,
num_vectors    IN  NUMBER,
dim_count      IN  NUMBER,
dim_type       IN  VARCHAR2,
parameter_json IN  CLOB DEFAULT NULL,
response_json  OUT CLOB);
TBD
Overload 2 dbms_vector.index_vector_memory_advisor(
table_owner    IN  VARCHAR2,
table_name     IN  VARCHAR2,
column_name    IN  VARCHAR2,
index_type     IN  VARCHAR2,
parameter_json IN  CLOB DEFAULT NULL,
response_json  OUT CLOB);
TBD
 
LIST_MODELS (new 23ai)
rETURNS a list of models and their capabilities dbms_vector.list_models(params IN JSON DEFAULT NULL) RETURN CLOB;
TBD
 
LIST_PROVIDERS (new 23ai)
Returns a list of providers dbms_vector.list_providers(params IN JSON DEFAULT NULL) RETURN CLOB;
TBD
 
LOAD_ONNX_MODEL (new 23ai)
Loads a model from an .onnx model file stored in a local directory.

Overload 1
dbms_vector.load_onnx_model(
directory  IN VARCHAR2,
file_name  IN VARCHAR2,
model_name IN VARCHAR2,
metadata   IN JSON DEFAULT JSON('{"function" : "embedding", ' || '"embeddingOutput" : "embedding" , "input" : {"input" : {"input" : ["DATA"]}}');
TBD
Loads a model from an .onnx model file stored in Cloud Object storage

Overload 2
dbms_vector.load_onnx_model(
model_name IN VARCHAR2,
model_data IN BLOB,
metadata   IN JSON DEFAULT JSON('{"function" : "embedding", ' || '"embeddingOutput" : "embedding" , "input" : {"input" : {"input" : ["DATA"]}}'));
TBD
 
LOAD_ONNX_MODEL_CLOUD (new 23ai)
Loads an ONNX model from object storage into the database dbms_vector.load_onnx_model_cloud(
model_name IN VARCHAR2,
credential IN VARCHAR2,
uri        IN VARCHAR2,
metadata   IN JSON default json('{"function" : "embedding", ' || '"embeddingOutput" : "embedding" , "input": {"input": ["DATA"]}}'));
TBD
 
LOG_TRACE (new 23ai)
Undocumented dbms_vector.log_trace(log_str IN VARCHAR2);
exec dbms_vector.log_trace('TEST');

PL/SQL procedure successfully completed.
 
PURGE_CHECKPOINT (new 23ai)
Purges the existing Checkpoint for a vector index user and index name dbms_vector.purge_checkpoint(
idx_owner IN VARCHAR2,
idx_name  IN VARCHAR2);
TBD
 
QUERY (new 23ai)
Queries a database schema for a similarity search

Overload 1
dbms_vector.query(
tab_name        IN VARCHAR2,
vec_col_name    IN VARCHAR2,
query_vector    IN CLOB,
top_k           IN NUMBER,
vec_proj_cols   IN sys.json_array_t DEFAULT NULL,
idx_name        IN VARCHAR2         DEFAULT NULL,
distance_metric IN BOOLEAN          DEFAULT 'COSINE',
use_index       IN BOOLEAN          DEFAULT TRUE,
accuracy        IN NUMBER           DEFAULT 90,
idx_parameters  IN CLOB             DEFAULT NULL);
TBD
Supports a query vector passed as a vector function

Overload 2
dbms_vector.query(
tab_name        IN VARCHAR2,
vec_col_name    IN VARCHAR2,
query_vector    IN VECTOR,
top_k           IN NUMBER,
vec_proj_cols   IN sys.json_array_t DEFAULT NULL,
idx_name        IN VARCHAR2         DEFAULT NULL,
distance_metric IN BOOLEAN          DEFAULT 'COSINE',
use_index       IN BOOLEAN          DEFAULT TRUE,
accuracy        IN NUMBER           DEFAULT 90,
idx_parameters  IN CLOB             DEFAULT NULL)
RETURN sys.json_array_t;
TBD
 
REBUILD_INDEX (new 23ai)
Rebuilds a vector index which is performed by dropping and recreating the original index dbms_vector.rebuild_index(
idx_name                IN VARCHAR2,
table_name              IN VARCHAR2 DEFAULT NULL,
idx_vector_col          IN VARCHAR2 DEFAULT NULL,
idx_include_cols        IN VARCHAR2 DEFAULT NULL,
idx_partitioning_scheme IN VARCHAR2 DEFAULT NULL,
idx_organization        IN VARCHAR2 DEFAULT NULL,
idx_distance_metric     IN VARCHAR2 DEFAULT NULL,
idx_accuracy            IN NUMBER   DEFAULT NULL,
idx_parameters          IN CLOB     DEFAULT NULL,
idx_parallel_creation   IN NUMBER   DEFAULT NULL);
TBD
 
RERANK (new 23ai)
Reorders search results for more relevant output dbms_vector.rerank(
query     IN CLOB,
documents IN JSON,
params    IN JSON DEFAULT NULL)
RETURN JSON;
TBD
 
SET_SGA_PERCENTAGE (new 23ai)
setS the desired max vector memory size for the PDB  as a percentage of SGA (0 - 70%) dbms_vector.set_sga_percentage(sga_percent IN NUMBER);
exec dbms_vector.set_sga_percentage(5);

PL/SQL procedure successfully completed.
 
SET_TRACE (new 23ai)
Undocumented dbms_vector.set_trace(status IN BOOLEAN);
exec dbms_vector.set_trace(TRUE);
 
TOGGLE_DEBUG_MODE (new 23ai)
Toggles debug mode ON or OFF dbms_vector.toggle_debug_mode(turn_on IN BOOLEAN);
exec dbms_vector.toggle_debug_mode(TRUE);

PL/SQL procedure successfully completed.

exec dbms_vector.toggle_debug_mode(FALSE);

PL/SQL procedure successfully completed.
 
TOGGLE_INDEX_VECTOR_MEMORY_ADVISOR_VERIFY (new 23ai)
Undocumented dbms_vector.toggle_index_memory_advisor_verify(turn_on IN BOOLEAN);
exec dbms_vector.toggle_index_memory_advisor_verify(TRUE);

PL/SQL procedure successfully completed.

exec dbms_vector.toggle_index_memory_advisor_verify(TRUE);

PL/SQL procedure successfully completed.
 
UTL_TO_CHUNKS (new 23ai)
Convert plain text into pieces of smaller text along with metadata

Overload 1
dbms_vector.utl_to_chunks(
data   IN CLOB,
params IN JSON DEFAULT NULL)
RETURN sys.vector_array_t;
TBD
Overload 2 dbms_vector.utl_to_chunks(
data   IN VARCHAR2,
params IN JSON DEFAULT NULL)
RETURN sys.vector_array_t;
TBD
 
UTL_TO_EMBEDDING (new 23ai)
Undocumented dbms_vector.url_to_embedding(
data   IN CLOB,
params IN JSON DEFAULT NULL)
RETURN VECTOR;
TBD
Overload 2 dbms_vector.utl_to_embedding(
data      IN BLOB,
modeality IN VARCHAR2 DEFAULT 'image',
params    IN JSON DEFAULT NULL)
RETURN VECTOR;
TBD
 
UTL_TO_EMBEDDINGS (new 23ai)
Converts text into embeddings (VECTORS) by calling an ONNX model or making an OCIGenAI REST call

Overload 1
dbms_vector.url_to_embeddings(
data   IN CLOB,
params IN JSON DEFAULT NULL)
RETURN vector_array_t;
TBD
Overload 2 dbms_vector.url_to_embeddings(
data   IN sys.vectoray_array_t,
params IN JSON DEFAULT NULL)
RETURN vector_array_t;
TBD
 
UTL_TO_GENERATE_TEXT (new 23ai)
Generate text by making a call a REST API call to OCIGenAI

Overload 1
dbms_vector.utl_to_generate_text(
data   IN CLOB,
params IN JSON DEFAULT NULL)
RETURN CLOB;
TBD
Overload 2 dbms_vector.utl_to_generate_text(
text_data  IN CLOB,
media_data IN BLOB,
media_type IN VARCHAR2,
params     IN JSON DEFAULT NULL)
RETURN CLOB;
TBD
 
UTL_TO_RERANK (new 23ai)
Undocumented dbms_vector.utl_to_rerank(
query     IN CLOB,
documents IN JSON,
params    IN JSON DEFAULT NULL)
RETURN JSON;
TBD

Related Topics
Built-in Functions
Built-in Packages
Database Security
DBMS_HYBRID_VECTOR
DBMS_SEARCH
DBMS_SEARCH_DEF
DBMS_SYS_SQL
DBMS_VECTOR_CHAIN
DBMS_VECTOR_INTERNAL
What's New In 21c
What's New In 26ai

Morgan's Library Page Footer
This site is maintained by Daniel Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2026 Daniel A. Morgan All Rights Reserved