Skip to main content
Oracle 自治数据库是一种云数据库,利用机器学习自动完成数据库调优、安全、备份、更新及其他传统上由 DBA 执行的日常管理任务。 本 notebook 介绍如何从 Oracle 自治数据库加载文档。

前提条件

数据库须能被 python-oracledb 的默认 'Thin' 模式连接。Oracle 自治数据库满足此要求,详见 python-oracledb 架构说明 使用本集成需安装 langchain-oracledb python-oracledb 驱动会作为 langchain-oracledb 的依赖自动安装。
# python -m pip install -U langchain-oracledb

使用说明

from langchain_oracledb.document_loaders import OracleAutonomousDatabaseLoader
from settings import s
使用双向 TLS 认证(mTLS)时,创建连接需要提供 wallet_location 和 wallet_password 参数。请参阅 python-oracledb 文档 连接到 Oracle Cloud 自治数据库
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()
使用单向 TLS 认证时,只需数据库凭据和连接字符串即可建立连接。下面的示例还展示了如何通过 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()