El Carro for Oracle Databases for LangChain

image image image

Known Limitations

  • The library supports El Carro Operator for Oracle 18c and higher versions.

  • By default the library uses thin mode. for Oracle connectivity, to use thick mode please follow the corresponding section..

  • To use VARCHAR2 datatype of size more than 4000 please change the parameter MAX_STRING_SIZE. in the Oracle instance.

Quick Start

Create an El Carro Operator Oracle Instance and a Database (PDB)

In order to use this library, you first need to have an El Carro Operator software running with an Instance (CDB) and a Database (PDB).

Please follow the steps for El Carro Oracle Operator to provision a new database and create a PDB:


Install this library in a virtualenv using pip. virtualenv is a tool to create isolated Python environments. The basic problem it addresses is one of dependencies and versions, and indirectly permissions.

With virtualenv, it’s possible to install this library without needing system install permissions, and without clashing with the installed system dependencies.

Supported Python Versions

Python >= 3.8


pip install virtualenv
virtualenv <your-env>
source <your-env>/bin/activate
<your-env>/bin/pip install langchain-google-el-carro


pip install virtualenv
virtualenv <your-env>
<your-env>\Scripts\pip.exe install langchain-google-el-carro

Document Loader Usage

Use a document loader to load data as LangChain Documents.

from langchain_google_el_carro import ElCarroEngine
from langchain_google_el_carro.loader import \
    ElCarroLoader, ElCarroDocumentSaver

elcarro_engine = ElCarroEngine.from_instance(
    "Your El Carro endpoint hostname", # e.g.
    "Your El Carro endpoint port", # e.g. 3307
    "Your PDB name",  # e.g. PDB1
    "Your DB user",
    "Your DB password",
loader = ElCarroLoader(
docs = loader.lazy_load()

See the full Document Loader tutorial.

Chat Message History Usage

Use ChatMessageHistory to store messages and provide conversation history to LLMs.

from langchain_google_el_carro import ElCarroEngine
from langchain_google_el_carro.chat_message_history import \

elcarro_engine = ElCarroEngine.from_instance(
    "Your El Carro endpoint hostname", # e.g.
    "Your El Carro endpoint port", # e.g. 3307
    "Your PDB name",  # e.g. PDB1
    "Your DB user",
    "Your DB password",
history = ElCarroChatMessageHistory(

See the full Chat Message History tutorial.

Oracle Thick Mode Connectivity

Thick mode connectivity requires you to install the Oracle Client libraries and pass thick_mode=True to ElCarroEngine. Follow these sections of the oracledb installation guide:

Example for Linux x64, glibc 2.14+:

wget https://download.oracle.com/otn_software/linux/instantclient/2113000/instantclient-basic-linux.x64- -O /tmp/drv.zip
rm -fr /tmp/instantclient_21_13/; unzip /tmp/drv.zip -d /tmp
export LD_LIBRARY_PATH=/tmp/instantclient_21_13/:$LD_LIBRARY_PATH


Contributions to this library are always welcome and highly encouraged.

See CONTRIBUTING for more information how to get started.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See Code of Conduct for more information.


Apache 2.0 - See LICENSE for more information.


This is not an officially supported Google product.