Skip to content

Python: feat(oracle): add new Oracle connector for Semantic Kernel - #13229

Merged
Eduard van Valkenburg (eavanvalkenburg) merged 8 commits into
microsoft:mainfrom
monita1208:feature/oracle-connector
Nov 26, 2025
Merged

Eduard van Valkenburg (eavanvalkenburg) merged 8 commits into
microsoft:mainfrom
monita1208:feature/oracle-connector

Conversation

@monita1208

@monita1208 Monita (monita1208) commented Oct 7, 2025 •

Copy link
Copy Markdown
Contributor

…ync support

Motivation and Context

This change is required to enable Semantic Kernel users to store and retrieve embeddings using Oracle databases. Currently, Semantic Kernel supports vector storage for several backends, but Oracle was missing. This connector solves that gap by providing full async support, native VECTOR type handling, and vector index management.

Description

This PR introduces a new Oracle connector for Semantic Kernel with the following features:

  • Asynchronous upsert, get, delete and search operations for memory records.

  • Native Oracle VECTOR type support for storing embeddings efficiently.

  • Support for HNSW and IVFFLAT vector indexes for similarity search.

  • Integration with Semantic Kernel collections, enabling semantic search and memory operations.

  • Comprehensive unit tests to ensure correctness and stability.

The connector is designed to work seamlessly with existing Semantic Kernel memory abstractions and follows the same async patterns as other vector stores.

Integration tests have also been implemented and verified locally; however, they are not included in this PR because the current CI environment setup for Oracle Database support is unknown.
Once guidance is provided on Oracle DB availability in the CI pipeline, integration tests can be enabled and added in a follow-up PR.

Contribution Checklist

@monita1208
Monita (monita1208) requested a review from a team as a code owner October 7, 2025 19:17
@monita1208

Copy link
Copy Markdown
Contributor Author

Monita (@monita1208) please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="oracle"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

Monita (@monita1208) please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="oracle"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@alexkeh

Copy link
Copy Markdown

@microsoft-github-policy-service agree [company="Oracle"]

@monita1208

Monita (monita1208) commented Oct 7, 2025 •

Copy link
Copy Markdown
Contributor Author

@microsoft-github-policy-service agree company="Oracle"

Comment thread python/semantic_kernel/connectors/oracle.py Outdated
Comment thread python/semantic_kernel/connectors/oracle.py Outdated
Comment thread python/semantic_kernel/connectors/oracle.py Outdated
Comment thread python/semantic_kernel/connectors/oracle.py Outdated
Comment thread python/semantic_kernel/connectors/oracle.py Outdated
Comment thread python/semantic_kernel/connectors/oracle.py Outdated
Comment thread python/semantic_kernel/connectors/oracle.py Outdated
Comment thread python/semantic_kernel/connectors/oracle.py
Comment thread python/semantic_kernel/connectors/oracle.py Outdated
@markwallace-microsoft Mark Wallace (markwallace-microsoft) added the python Pull requests for the Python Semantic Kernel label Nov 4, 2025
@github-actions github-actions Bot changed the title feat(oracle): add new Oracle connector for Semantic Kernel Python: feat(oracle): add new Oracle connector for Semantic Kernel Nov 4, 2025
Comment thread python/semantic_kernel/connectors/oracle.py
Comment thread python/semantic_kernel/connectors/oracle.py Outdated
Comment thread python/semantic_kernel/connectors/oracle.py Outdated
Comment thread python/semantic_kernel/connectors/oracle.py
Comment thread python/semantic_kernel/connectors/oracle.py Outdated
@eavanvalkenburg

Copy link
Copy Markdown
Member

Monita (@monita1208) the code quality checks fail, please ensure you have the pre-commit config running locally and check mypy locally as well!

@monita1208

Copy link
Copy Markdown
Contributor Author

Monita (@monita1208) the code quality checks fail, please ensure you have the pre-commit config running locally and check mypy locally as well!

Updated code with formatting issue fix using pre-commit config.

Merged via the queue into microsoft:main with commit e1fbafe Nov 26, 2025
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

msft.ext.vectordata Related to Microsoft.Extensions.VectorData python Pull requests for the Python Semantic Kernel

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants