Oracle Autonomous Database
Oracle Autonomous Database is a cloud database that uses machine learning to automate database tuning, security, backups, updates, and other routine management tasks traditionally performed by DBAs.
This notebook covers how to load documents from Oracle Autonomous Database.
Prerequisites
- A database that python-oracledb's default 'Thin' mode can connected to. This is true of Oracle Autonomous Database, see python-oracledb Architecture.
Instructions
You'll need to install langchain-oracledb
with python -m pip install -U langchain-oracledb
to use this integration.
The python-oracledb
driver is installed automatically as a dependency of langchain-oracledb.
# python -m pip install -U langchain-oracledb
from langchain_oracledb.document_loaders import OracleAutonomousDatabaseLoader
from settings import s
With mutual TLS authentication (mTLS), wallet_location and wallet_password parameters are required to create the connection. See python-oracledb documentation Connecting to Oracle Cloud Autonomous Databases.
SQL_QUERY = "select prod_id, time_id from sh.costs fetch first 5 rows only"
doc_loader_1 = OracleAutonomousDatabaseLoader(
query=SQL_QUERY,
user=s.USERNAME,
password=s.PASSWORD,
schema=s.SCHEMA,
config_dir=s.CONFIG_DIR,
wallet_location=s.WALLET_LOCATION,
wallet_password=s.PASSWORD,
dsn=s.DSN,
)
doc_1 = doc_loader_1.load()
doc_loader_2 = OracleAutonomousDatabaseLoader(
query=SQL_QUERY,
user=s.USERNAME,
password=s.PASSWORD,
schema=s.SCHEMA,
dsn=s.DSN,
wallet_location=s.WALLET_LOCATION,
wallet_password=s.PASSWORD,
)
doc_2 = doc_loader_2.load()
With 1-way TLS authentication, only the database credentials and connection string are required to establish a connection. The example below also shows passing bind variable values with the argument "parameters".
SQL_QUERY = "select channel_id, channel_desc from sh.channels where channel_desc = :1 fetch first 5 rows only"
doc_loader_3 = OracleAutonomousDatabaseLoader(
query=SQL_QUERY,
user=s.USERNAME,
password=s.PASSWORD,
schema=s.SCHEMA,
config_dir=s.CONFIG_DIR,
dsn=s.DSN,
parameters=["Direct Sales"],
)
doc_3 = doc_loader_3.load()
doc_loader_4 = OracleAutonomousDatabaseLoader(
query=SQL_QUERY,
user=s.USERNAME,
password=s.PASSWORD,
schema=s.SCHEMA,
dsn=s.DSN,
parameters=["Direct Sales"],
)
doc_4 = doc_loader_4.load()
Related
- Document loader conceptual guide
- Document loader how-to guides