Oracle DBMS_VECTOR
Version 26ai

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

Oracle Database 26ai is now availble. If you haven't you downloaded already: Why?
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