mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-17 23:41:46 +00:00
Community: Add bind variable support for oracle adb docloader (#30937)
PR title: Community: Add bind variable support for oracle adb docloader Description: This PR adds support of using bind variable to oracle adb doc loader class, including minor document change. Issue: N/A Dependencies: No new dependencies.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from typing import Any, Dict, List, Optional
|
||||
from typing import Any, Dict, List, Optional, Union
|
||||
|
||||
from langchain_core.documents import Document
|
||||
|
||||
@@ -31,6 +31,7 @@ class OracleAutonomousDatabaseLoader(BaseLoader):
|
||||
wallet_password: Optional[str] = None,
|
||||
connection_string: Optional[str] = None,
|
||||
metadata: Optional[List[str]] = None,
|
||||
parameters: Optional[Union[list, tuple, dict]] = None,
|
||||
):
|
||||
"""
|
||||
init method
|
||||
@@ -44,6 +45,7 @@ class OracleAutonomousDatabaseLoader(BaseLoader):
|
||||
:param wallet_password: password of wallet
|
||||
:param connection_string: connection string to connect to adb instance
|
||||
:param metadata: metadata used in document
|
||||
:param parameters: bind variable to use in query
|
||||
"""
|
||||
# Mandatory required arguments.
|
||||
self.query = query
|
||||
@@ -67,6 +69,9 @@ class OracleAutonomousDatabaseLoader(BaseLoader):
|
||||
# metadata column
|
||||
self.metadata = metadata
|
||||
|
||||
# parameters, e.g bind variable
|
||||
self.parameters = parameters
|
||||
|
||||
# dsn
|
||||
self.dsn: Optional[str]
|
||||
self._set_dsn()
|
||||
@@ -96,7 +101,10 @@ class OracleAutonomousDatabaseLoader(BaseLoader):
|
||||
cursor = connection.cursor()
|
||||
if self.schema:
|
||||
cursor.execute(f"alter session set current_schema={self.schema}")
|
||||
cursor.execute(self.query)
|
||||
if self.parameters:
|
||||
cursor.execute(self.query, self.parameters)
|
||||
else:
|
||||
cursor.execute(self.query)
|
||||
columns = [col[0] for col in cursor.description]
|
||||
data = cursor.fetchall()
|
||||
data = [
|
||||
|
Reference in New Issue
Block a user