DBMS_CLOUD_AI Package
The DBMS_CLOUD_AI
package facilitates and
configures the translation of natural language prompts to generate, run, explain SQL
statements. Also, enables retrieval augmented generation and natural language-based
interactions, including chatting with LLMs.
- DBMS_CLOUD_AI Overview
Describes the use of theDBMS_CLOUD_LINK
package. - Summary of DBMS_CLOUD_AI Subprograms
This section covers theDBMS_CLOUD_AI
subprograms provided with Autonomous Database.
Parent topic: Autonomous Database Supplied Package Reference
DBMS_CLOUD_AI Overview
Describes the use of the DBMS_CLOUD_LINK
package.
Use the DBMS_CLOUD_AI
package
to create AI profiles and configure them for access to a Large Language Model (LLM).
Set the AI profile in the current database user session to perform tasks such as
generating, running, and explaining SQL. Additionally, enable retrieval augmented
generation and natural language-based interactions, including chatting with
LLMs.
To know more about supported platforms and LLMs, see About Select AI.
Parent topic: DBMS_CLOUD_AI Package
Summary of DBMS_CLOUD_AI Subprograms
This section covers the DBMS_CLOUD_AI
subprograms provided with Autonomous Database.
Subprogram | Description |
---|---|
This procedure creates a new AI profile for translating natural language prompts to SQL statements. |
|
Provides AI profile attributes that you can configure. |
|
This procedure disables an AI profile in the current database. |
|
This procedure drops an existing AI profile. |
|
This procedure enables an AI profile to use in the current database. |
|
This function generates a SQL statement using AI to translate. | |
This function generates synthetic data. |
|
This function returns the profile name used in the current session. |
|
This procedure returns the profile name and the owner of the profile in the current session. |
|
This procedure sets AI profile attributes. |
|
This procedure sets AI profile for the current database. |
|
This procedure creates a vector index in the specified vector database, and populates it with data from an object store using an asynchronous scheduler job. |
|
This procedure removes a vector store index. It normally removes the vector store index object and deletes the vector database. |
|
This procedure disables a vector index object in the current database. When disabled, an AI profile cannot use the vector index, and the system does not load data into the vector store. |
|
This procedure enables or activates a previously disabled vector index object. |
|
This procedure updates an existing vector store index with a specified value of the vector index attribute. |
|
Provides vector index profile attributes that you can configure. |
- CREATE_PROFILE Procedure
The procedure creates a new AI profile for translating natural language prompts to SQL statement. - DROP_PROFILE Procedure
The procedure drops an existing AI profile. If the profile does not exist, then the procedure throws an error. - ENABLE_PROFILE Procedure
This procedure enables the AI profile that the user specifies. The procedure changes the status of the AI profile toENABLED
. - DISABLE_PROFILE Procedure
This procedure disables the AI profile in the current database. The status of the AI profile is changed toDISABLED
by this procedure. - GET_PROFILE Function
This function returns the AI profile name set in the current session. - GET_PROFILE Procedure
This procedure returns the AI profile name and the owner set in the current session. - SET_ATTRIBUTE Procedure
This procedure enables you to set AI profile attributes. - SET_PROFILE Procedure
This procedure sets AI profile for current session. - GENERATE Function
This function provides AI translation in a stateless manner. With your existing AI profile, you can use this function to perform the supported actions such asshowsql
,narrate
, orchat
. The default action isshowsql
. - GENERATE_SYNTHETIC_DATA Function
Use this procedure to generate synthetic data for a single table, multiple tables or a full schema. - Profile Attributes
Attributes of an AI profile help to manage and configure the behavior of the AI profile. Some attributes are optional and have a default value. - CREATE_VECTOR_INDEX Procedure
This procedure creates a vector index in the specified vector database, and populates it with data from an object store using an asynchronous scheduler job. - DROP_VECTOR_INDEX Procedure
This procedure removes a vector store index. It normally removes the vector store index object and deletes the vector store. If set toFALSE
, the argumentinclude_data
ensures the procedure only removes the vector store index object while retaining the vector store. - DISABLE_VECTOR_INDEX Procedure
This procedure disables a vector index object in the current database. When disabled, an AI profile cannot use the vector index, and the system does not load data into the vector store as new data is added to the object store and does not perform indexing, searching or querying based on the index. - ENABLE_VECTOR_INDEX Procedure
This procedure enables or activates a previously disabled vector index object. Generally, when you create a vector index, by default it is enabled such that the AI profile can use it to perform indexing and searching. - UPDATE_VECTOR_INDEX Procedure
This procedure updates an existing vector store index with a specified value of the vector index attribute. - Vector Index Attributes
Attributes of a vector index help to manage and configure the behavior of the vector index. You can add custom index attributes as necessary. Some attributes are optional and have a default value.
Parent topic: DBMS_CLOUD_AI Package
CREATE_PROFILE Procedure
The procedure creates a new AI profile for translating natural language prompts to SQL statement.
Syntax
DBMS_CLOUD_AI.CREATE_PROFILE
profile_name IN VARCHAR2,
attributes IN CLOB DEFAULT NULL,
status IN VARCHAR2 DEFAULT NULL,
description IN CLOB DEFAULT NULL
);
Parameters
Parameter | Description |
---|---|
|
A name for the AI profile. The profile name must follow the naming rules of Oracle SQL identifier. Maximum length of profile name is 125 characters. This is a mandatory parameter. |
|
Profile attributes in JSON format. See AI Profile Attributes for more details. The default value is NULL. |
status |
Status of the profile. The default value is enabled. |
|
Description for the AI profile. The default value is NULL. |
Example
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'OpenAI',
attributes => JSON_OBJECT('provider' value 'openai',
'credential_name' value 'openai_cred'),
status => 'enabled',
description => 'AI profile to use OpenAI for SQL translation'
);
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
DROP_PROFILE Procedure
The procedure drops an existing AI profile. If the profile does not exist, then the procedure throws an error.
Syntax
DBMS_CLOUD_AI.DROP_PROFILE
(
profile_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);
Parameters
Parameter | Description |
---|---|
|
Name of the AI profile |
|
If The default value for this parameter is
|
Example
BEGIN
DBMS_CLOUD_AI.DROP_PROFILE
(profile_name => 'OPENAI');
END;
/
Usage Notes
Use force
to drop a profile and ignore errors if AI profile does not
exist.
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
ENABLE_PROFILE Procedure
This
procedure enables the AI profile that the user specifies. The procedure changes the
status of the AI profile to ENABLED
.
Syntax
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name IN VARCHAR2
);
Parameters
Parameter | Description |
---|---|
|
Name for the AI profile to enable This parameter is mandatory. |
Example to Enable AI Profile
BEGIN
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
DISABLE_PROFILE Procedure
This
procedure disables the AI profile in the current database. The status of the AI profile is
changed to DISABLED
by this procedure.
Syntax
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name IN VARCHAR2
);
Parameters
Parameter | Description |
---|---|
|
Name for the AI profile. This parameter is mandatory. |
Example
BEGIN
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
GET_PROFILE Function
This function returns the AI profile name set in the current session.
Syntax
DBMS_CLOUD_AI.GET_PROFILE
(
profile_name IN VARCHAR2
);
Parameters
Parameter | Description |
---|---|
|
A name for the AI profile in the current session. This parameter is mandatory. |
Example
This example shows how you can display the name of the profile in the current session.
SELECT DBMS_CLOUD_AI.GET_PROFILE
from DUAL;
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
GET_PROFILE Procedure
This procedure returns the AI profile name and the owner set in the current session.
Syntax
DBMS_CLOUD_AI.GET_PROFILE
(
profile_name OUT VARCHAR2,
profile_owner OUT VARCHAR2
);
Parameters
Parameter | Description |
---|---|
|
A name for the AI profile in the current session. This parameter is mandatory. |
profile_owner |
Identifies the owner of the AI profile in the current session. |
Example
This example shows how you can display the name and owner of the profile in the current session.
DECLARE
l_profile_name DBMS_ID;
l_profile_owner DBMS_ID;
BEGIN
DBMS_CLOUD_AI.GET_PROFILE
(profile_name => l_profile_name,
profile_owner => l_profile_owner);
END;
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
SET_ATTRIBUTE Procedure
This procedure enables you to set AI profile attributes.
Syntax
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN CLOB
);
Parameters
Only the owner can set or modify the attributes of the AI profile. For a list of supported attributes, see Profile Attributes.
Parameter | Description |
---|---|
|
Name of the AI profile for which you want to set the attributes. This parameter is mandatory. |
|
Name of the AI profile attribute This parameter is mandatory. |
|
Value of the profile attribute. The default value is NULL. |
Example
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OPENAI',
attribute_name => 'credential_name',
attribute_value => 'OPENAI_CRED_NEW'
);
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
SET_PROFILE Procedure
This procedure sets AI profile for current session.
After setting an AI profile for the database session, any SQL statement
with the prefix SELECT AI
is considered a natural language prompt.
Depending on the action specified with the AI
prefix, a response is
generated using AI. To use the AI
prefix, see Examples of Using Select AI. Optionally, it is possible to override the profile
attributes or modify attributes by specifying them in JSON format. See SET_ATTRIBUTE Procedure for setting the attributes.
The AI profile can only be set for current session if the owner of the AI profile is the session user.
To set an AI profile for all sessions of a specific database user or all
user sessions in the database, consider using a database event trigger for
AFTER LOGON
event on the specific user or the entire database.
See CREATE TRIGGER Statement for more
details.
Syntax
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name IN VARCHAR2,
);
Parameters
Parameter | Description |
---|---|
|
A name for the AI profile in the current session. This parameter is mandatory. |
Example
BEGIN
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
GENERATE Function
showsql
, narrate
, or
chat
. The default action is showsql
.
Overriding some or all of the profile attributes is also possible using this function.
Syntax
DBMS_CLOUD_AI.GENERATE
(
prompt IN CLOB,
profile_name IN VARCHAR2 DEFAULT NULL,
action IN VARCHAR2 DEFAULT NULL,
attributes IN CLOB DEFAULT NULL
) RETURN CLOB;
Parameters
Parameter | Description |
---|---|
|
Natural language prompt to translate using AI. The prompt can include This parameter is mandatory. |
|
Name of the AI profile. This parameter is optional if
an AI profile is already set in the session using The default value is NULL. The following conditions apply:
Note
For Database Actions, you can either specify profile_name
argument in DBMS_CLOUD_AI.GENERATE or you can
run two steps as a PL/SQL script: DBMS_CLOUD_AI.SET_PROFILE and DBMS_CLOUD_AI.GENERATE .
|
action |
Action for
translating natural prompt using AI. The supported actions
include Note
This function does not support the runsql action. If you
supply the runsql action, it returns the
following
error:
|
attributes |
Override specific AI profile attributes by supplying attributes in JSON format. See Profile Attributes for more details. |
Examples
The following examples illustrate showsql
,
narrate
, and chat
actions that can be used
with the DBMS_CLOUD_AI.GENERATE
function.
An example with showsql
action is as follows:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'showsql')
FROM dual;
An example with narrate
action is as follows:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'narrate')
FROM dual;
An example with chat
action is as follows:
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'what is oracle autonomous database',
profile_name => 'OPENAI',
action => 'chat')
FROM dual;
You can use DBMS_CLOUD_AI.GENERATE
in a procedure and run the
function. The following example takes an ai_prompt
,
profile_name
, and action
as input parameters
and calls DBMS_CLOUD_AI.GENERATE
create or replace FUNCTION call_select_ai (ai_prompt IN VARCHAR2,
ai_profile IN VARCHAR2,
ai_action IN VARCHAR2) -- valid for 'chat', 'narrate', 'showsql'
RETURN CLOB AS sai_resp clob;
BEGIN
sai_resp := DBMS_CLOUD_AI.GENERATE(prompt => ai_prompt,
profile_name => ai_profile,
action => ai_action);
return(sai_resp);
END call_select_ai;
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
GENERATE_SYNTHETIC_DATA Function
The following is the syntax to generate synthetic data for a single table.
Syntax
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
(
profile_name IN VARCHAR2,
object_name IN DBMS_ID,
owner_name IN DBMS_ID,
record_count IN NUMBER,
user_prompt IN CLOB DEFAULT NULL,
params IN CLOB DEFAULT NULL
);
The following is the syntax to generate synthetic data for multiple tables.
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name IN VARCHAR2,
object_list IN CLOB,
params IN CLOB DEFAULT NULL
);
Parameters
Parameter | Mandatory | Description |
---|---|---|
|
Yes |
The AI profile containing necessary LLM service information. This can be created by CREATE_PROFILE Procedure. |
|
Yes | Specify a table name to populate synthetic data.
|
owner_name |
No |
Specify the database user who owns the referenced object. If no specific owner is provided, the procedure defaults to using the schema of the user running it. |
record_count |
No |
The number of records to be synthetically generated. |
|
No | Additional information that a user can mention to
generate synthetic data. For example, to generate a record for a
table called MOVIE with a
release_date column, the
user_prompt can be:
the release date for the movies should be in 2019 |
|
No |
Optional attributes provided in JSON object string format to modify the behavior of an API. See Optional Parameters. |
|
Yes | Use this parameter for generating synthetic data on multiple tables. This parameter takes in table object information along with it's arguments and contains the same arguments provided in the single table. See object_list Parameters. |
Optional Parameters
Parameter | Value Datatype | Value | Description |
---|---|---|---|
|
Number |
|
Specify the number of rows from the table to use as a sample to guide the LLM in data generation. A value of 0 means no sample rows will be used. The
default value is |
|
Boolean |
|
Enable or disable the use of table statistics information. The default value is |
|
String |
Valid values:
|
Assign a priority value that defines the number of parallel requests sent to the LLM for generating synthetic data. Tasks with a higher priority will consume more database resources and complete faster. The default value is
The maximum number of concurrent parallel processes used for synthetic data generation is limited to 64. |
|
Boolean |
|
Enable or disable sending comments to the LLM to guide data generation. The default value is |
object_list Parameters
Parameter | Value Datatype | Mandatory | Description |
---|---|---|---|
|
String |
Yes |
Specifies the database user who owns the object being referenced. If no specific owner is provided, the procedure will default to using the schema of the user running it. |
|
String |
No |
Specify a table name to populate synthetic data.
SELECT and INSERT privilege on the
table objects are needed for the user using it.The table is either empty
or have records in it.
|
|
Number |
No |
The number of records to be synthetically generated. Provide a number greater than 0. Supply |
|
Number |
No |
The percentage of number of records to be synthetically generated. Provide a number greater than 0. For a Metadata Clone database, where the table metadata
including statistics is preserved, the
Supply When using the
record_count_percentage
parameter, the final record count in the table is calculated as:
|
|
String | No | Same as user_prompt in Parameters. The user_prompt is
associated with a specific table object.
|
Examples
The following examples show the
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
function for generating
synthetic data for a single table and multiple tables. For a complete example and to
view more examples, see Example: Generate Synthetic Data.
BEGIN
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name => 'GENAI',
object_name => 'Director',
owner_name => 'ADB_USER',
record_count => 5
);
END;
/
PL/SQL procedure successfully completed.
BEGIN
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name => 'GENAI',
object_list => '[{"owner": "ADB_USER", "name": "Director","record_count":5},
{"owner": "ADB_USER", "name": "Movie_Actor","record_count":5},
{"owner": "ADB_USER", "name": "Actor","record_count":10},
{"owner": "ADB_USER", "name": "Movie","record_count":5,"user_prompt":"all movies are released in 2009"}]'
);
END;
/
PL/SQL procedure successfully completed.
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
Profile Attributes
Attributes
Attribute Name | Description |
---|---|
|
Name of the Azure OpenAI Service deployed model. The
name can only include alphanumeric characters, underscore
character (_) and a hyphen (-) character. The name cannot end
with an underscore (_) or a hyphen (-). To know how to get the
|
|
Name of the Azure OpenAI deployed embedding model. The name can only include alphanumeric characters, underscore, and hyphen. The name can't start or end with a hyphen or underscore. |
|
Name of the Azure OpenAI Service resource. The
resource name can only include alphanumeric characters and
hyphens, and can't start or end with a hyphen. To know how to
get the |
|
Include column comments in the metadata used for
translating natural language prompts using AI.
Note
Boolean values are not applicable in the DBMS_CLOUD_AI.SET_ATTRIBUTE
procedure when setting a single attribute because
attribute_value parameter is of
CLOB data type.
|
|
A |
|
The name of the credential to access the AI provider APIs. Credential using bearer tokens can be created by using the provider name as the user name and bearer token as the password. Vault Secret credentials are also supported. Principal authentication, for example, Azure service principal, is also supported. For more information on how to configure it, see Use Azure Service Principal to Access Azure Resources. This is a mandatory attribute. See CREATE_CREDENTIAL Procedure. |
|
The embedding model defined in the AI profile. The following are the supported AI providers for the embedding models with their default values:
Note
The embedding_model parameter is not
applicable for Anthropic and Hugging Face.
|
|
Denotes the number of tokens to predict per generation. Default is 1024. See Tokens and Tokenizers for more details. |
|
The name of the AI model being used to generate responses. See Select your AI Provider and LLMs and specify the model name. Note
|
|
Array of JSON objects specifying the owner and object names that are eligible for natural language translation to SQL. To include all objects of a given user, omit the "name" and only specify the "owner" key in the JSON object. The following types of objects can be used:
For translation natural language to SQL, the object name, object owner, object columns and comments are sent to the AI provider using HTTPS requests. Avoid specifying objects with sensitive object name, column names or comments in the object list. AI providers may have limit on the size of metadata allowed in translation requests. Consider limiting the list of objects suitable for the natural language prompts by your application users. Format:
External tables created using sync of OCI Data Catalog or AWS Glue can also be used the object list. This helps in managing metadata in central Data Catalogs and use the metadata directly for translating natural language prompts using AI. |
|
Specifies the format in which the API expects data
to be sent and received. Use this attribute to generate text
responses. This attribute applies to OCI Generative AI Chat
Models in a dedicated AI
cluster.
Specify this attribute when you specify a model OCID in the
Supported values are:
|
|
Specifies the OCID of the compartment you are permitted to access when calling the OCI Generative AI service. The compartment ID can contain alphanumeric characters, hyphens and dots. The default is the compartment ID of the PDB. |
|
This attributes indicates the endpoint OCID of the Oracle dedicated AI hosting cluster. The endpoint ID can contain alphanumeric characters, hyphens and dots. To find the endpoint OCID, see Getting an Endpoint's Details in Generative AI. When you want to use the Oracle dedicated AI cluster, you must provide the endpoint OCID of the hosting cluster. By default, the endpoint ID is empty and the model is on-demand on a shared infrastructure. |
|
This attribute indicates the runtime type of the
provided model. This attribute
is
applicable to OCI Generate Text models in a dedicated AI
cluster. Specify this attribute when you specify a model OCID in
the All permitted values can be found in OCI Generative AI runtimeType. See LlmInferenceRequest Reference. The supported values are:
|
|
AI provider for the AI profile. Supported providers:
This is a mandatory attribute. |
|
This attribute indicates the location
of the Generative AI cluster that you want to use. The region
can contain alphanumeric characters and hyphen characters.
Note
The
default region is The Oracle Generative AI cluster is available in Chicago, Frankfurt, and London regions. See Pretrained Foundational Models in Generative AI. us-chicago-1 .
|
|
The generated text will be terminated at the
beginning of the earliest stop sequence. Sequence will be
incorporated into the text. The attribute value must be a valid
array of string values in JSON format.
|
|
Sampling from Generate Text models incorporates randomness, so that the same prompt may yield different outputs each time you hit "generate". Temperature is a non-negative float number used to tune the degree of randomness. Lower temperatures mean less random generations. See Temperature for more details. This parameter is applicable to all the supported service providers. |
|
Name of the vector index. The vector index name must follow the naming rules of Oracle SQL identifier. Maximum length of the vector store name is 125 characters. |
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'COHERE',
attributes =>
'{"provider": "cohere",
"credential_name": "COHERE_CRED",
"object_list": [{"owner": "ADB_USER"}],
"max_tokens":512,
"stop_tokens": [";"],
"model": "command-nightly",
"temperature": 0.5,
"comments": true
}');
END;
/
The following example shows custom profile attributes using OCI Generative AI:
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'GENAI',
attributes => '{"provider": "oci",
"credential_name": "GENAI_CRED",
"object_list": [{"owner": "SH", "name": "customers"},
{"owner": "SH", "name": "countries"},
{"owner": "SH", "name": "supplementary_demographics"},
{"owner": "SH", "name": "profits"},
{"owner": "SH", "name": "promotions"},
{"owner": "SH", "name": "products"}],
"oci_compartment_id": "ocid1.compartment.oc1...",
"oci_endpoint_id": "ocid1.generativeaiendpoint.oc1.us-chicago-1....",
"region": "us-chicago-1",
"model": "cohere.command-light",
"oci_runtimetype": "COHERE"
}');
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
CREATE_VECTOR_INDEX Procedure
This procedure creates a vector index in the specified vector database, and populates it with data from an object store using an asynchronous scheduler job.
Syntax
PROCEDURE CREATE_VECTOR_INDEX(
index_name IN VARCHAR2,
attributes IN CLOB DEFAULT NULL,
status IN VARCHAR2 DEFAULT NULL,
description IN CLOB DEFAULT NULL
);
Parameters
Parameter | Description |
---|---|
|
Name of the vector index. The vector index name must follow the naming rules of Oracle SQL identifier. Maximum length of vector store name is 125 characters. This is a mandatory parameter. |
|
Custom attributes for the vector index in JSON. To see a list of configurable parameters, see Vector Index Attributes. The default value is NULL. |
status |
Status of the vector index. The possible values
are:
The default value is Disabled. |
|
Description for the vector index. The default value is NULL. |
Example
The following example demonstrates how to create a vector index and configure the attributes as JSON parameters.
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX
(
index_name => 'MY_INDEX'
attributes => JSON_OBJECT(
'vector_db_provider' value 'oracle',
'vector_table_name' value 'oracle_mycollection',
'profile_name' value 'OCIGENAI',
'location' value
'https://objectstorage.us-phoenix-1.' ||
'oraclecloud.com/n/mynamespace/b/mybucket',
'object_store_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
DROP_VECTOR_INDEX Procedure
This procedure removes a vector store index. It
normally removes the vector store index object and deletes the vector store. If set to
FALSE
, the argument include_data
ensures the procedure
only removes the vector store index object while retaining the vector store.
Syntax
PROCEDURE DROP_VECTOR_INDEX(
index_name IN VARCHAR2,
include_data IN BOOLEAN DEFAULT TRUE,
force IN BOOLEAN DEFAULT FALSE
);
Parameters
Parameter | Description |
---|---|
|
Name of the vector index. The vector index name must follow the naming rules of Oracle SQL identifier. Maximum length of vector store name is 125 characters. This is a mandatory parameter. |
|
Indicates whether to delete both the customer's vector store and vector index along with the vector index object. Possible values:
The default value is |
force |
Indicates whether to ignore errors that occur if the vector index does not exist. Possible values:
If set to The default value is |
Example
BEGIN
DBMS_CLOUD_AI.DROP_VECTOR_INDEX(
index_name => 'MY_INDEX',
include_data => FALSE,
force => TRUE
);
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
DISABLE_VECTOR_INDEX Procedure
This procedure disables a vector index object in the current database. When disabled, an AI profile cannot use the vector index, and the system does not load data into the vector store as new data is added to the object store and does not perform indexing, searching or querying based on the index.
Syntax
DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX
(
index_name IN VARCHAR2
);
Parameters
Parameter | Description |
---|---|
|
Name of the vector index. The vector index name must follow the naming rules of Oracle SQL identifier. Maximum length of vector store name is 125 characters. This is a mandatory parameter. |
Example
You can disable a vector index by providing the name of the vector index.
BEGIN
DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX
(index_name => 'MY_INDEX');
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
ENABLE_VECTOR_INDEX Procedure
This procedure enables or activates a previously disabled vector index object. Generally, when you create a vector index, by default it is enabled such that the AI profile can use it to perform indexing and searching.
When enabled, a vector index allows an AI profile to use it for loading
new data from an object store into a vector store at a user-specified refresh rate.
You can specify the refresh_rate
parameter through the JSON object
list. To configure the JSON attributes, see Vector Index Attributes.
Syntax
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX
(
index_name IN VARCHAR2
);
Parameters
Parameter | Description |
---|---|
|
Name of the vector index. The vector index name must follow the naming rules of Oracle SQL identifier. Maximum length of vector store name is 125 characters. This is a mandatory parameter. |
Example
You can enable or activate a vector index by specifying the vector index name as follows:
BEGIN
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX
(index_name => 'MY_INDEX');
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
UPDATE_VECTOR_INDEX Procedure
This procedure updates an existing vector store index with a specified value of the vector index attribute.
Syntax
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name IN VARCHAR2,
attributes IN CLOB
);
Parameters
Parameter | Description |
---|---|
|
Name of the vector index. The vector index name must follow the naming rules of Oracle SQL identifier. Maximum length of vector store name is 125 characters. This is a mandatory parameter. |
|
Name of the custom attributes specified as JSON
parameters in You cannot modify the following attributes:
This is a mandatory parameter. |
attribute_value |
User specified value for the custom
The default value is NULL. |
Example
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attribute_name => 'vector_db_credential_name',
attribute_value => 'NEW_CRED'
);
END;
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms
Vector Index Attributes
Attributes
Attribute Name | Value | Mandatory | Description |
---|---|---|---|
chunk_size |
1024 (default)
|
No |
Text size of chunking the input data. For text data, this means the number of characters. |
chunk_overlap |
128 (default)
|
No |
Specifies the amount of overlapping characters between adjacent chunks of text. This attribute is useful for ensuring contextual continuity and accuracy in text processing by allowing overlaps between segments, which helps prevent loss of contextual information at chunk boundaries. |
|
NA | Yes |
Location of the object store. The files in this location must be text files, such as html and txt. |
|
5 (default)
|
No |
Specifies the maximum number of results to return in a vector search query, controlling the output size and improving the efficiency of data retrieval operations. |
|
NA | Yes |
Specifies the name of the credentials for accessing an object storage. |
|
<vector_index_name>$VECPIPELINE |
No |
Specifies the name of the vector index data load pipeline. This attribute is automatically set for the vector index, you cannot specify or modify. The pipeline name can be used to monitor the vector index data load using Monitor and Troubleshoot Pipelines. |
|
NA | Yes |
Name of the AI profile which is used for embedding source data and user prompts. |
|
1440 minutes (default)
|
No |
Interval of updating data in the vector store. The unit is minutes. |
|
0 (default)
|
No |
Defines the minimum level of similarity required for two items to be considered a match, useful for filtering results in matching algorithms to ensure relevance. |
|
Valid values for Oracle 23ai:
|
No |
Specifies the type of distance calculation used to compare vectors in a database, determining how similarity between items is quantified. |
|
|
Yes |
Specifies the provider name that manages and serves as the vector store. |
|
NA | No |
Specifies the number of elements in each vector within the vector store, defining the size and structure of the data representation. |
|
|
No |
Specifies the name of the table or collection to store vector embeddings and chunked data. |
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attributes => '{"vector_db_provider": "oracle",
"location": "https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/my_namespace/my_bucket/my_data_folder",
"object_storage_credential_name": "OCI_CRED",
"profile_name": "OPENAI_ORACLE",
"vector_dimension": 1024,
"vector_distance_metric": "cosine",
"chunk_overlap":128,
"chunk_size":1024
}');
END;
/
/
Parent topic: Summary of DBMS_CLOUD_AI Subprograms