From 15c1ddaf996fe305624f39e7b9e05adc6a4b2ffc Mon Sep 17 00:00:00 2001 From: xsai9101 Date: Tue, 15 Oct 2024 19:19:20 -0700 Subject: [PATCH] community: Add support for clob datatype in oracle database (#27330) **Description**: This PR add support of clob/blob data type for oracle document loader, clob/blob can only be read by oracledb package when connection is open, so reformat code to process data before connection closes. **Dependencies**: oracledb package same as before. pip install oracledb Co-authored-by: Erick Friis --- .../document_loaders/oracleadb_loader.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libs/community/langchain_community/document_loaders/oracleadb_loader.py b/libs/community/langchain_community/document_loaders/oracleadb_loader.py index 90a8d608855..35da49c9aff 100644 --- a/libs/community/langchain_community/document_loaders/oracleadb_loader.py +++ b/libs/community/langchain_community/document_loaders/oracleadb_loader.py @@ -100,7 +100,13 @@ class OracleAutonomousDatabaseLoader(BaseLoader): cursor.execute(self.query) columns = [col[0] for col in cursor.description] data = cursor.fetchall() - data = [dict(zip(columns, row)) for row in data] + data = [ + { + i: (j if not isinstance(j, oracledb.LOB) else j.read()) + for i, j in zip(columns, row) + } + for row in data + ] except oracledb.DatabaseError as e: print("Got error while connecting: " + str(e)) # noqa: T201 data = []