Есть ли лучший способ изменить параметры запроса SQL на основе пользовательского ввода? (в настоящее время используется замена строки) - PullRequest
0 голосов
/ 03 марта 2020

У меня есть скрипт Python, который запрашивает данные из базы данных и сохраняет их внутри фрейма данных.
В запросе SQL используются изменения, основанные на вводе данных пользователем.
Вот код, который у меня есть (он работает, но я чувствую, что делаю не так, как надо):

# Accept parameters
release = input('Enter Release:')
level = input('Enter Level:')
cycle = input('Enter Cycle:')
date = input('Enter Date:')
time = input('Enter Time:')

# Define query template
query = """
select
shipment_id,
'INPUT_DATE' AS DATE,
'INPUT_TIME' AS TIME
from table
where
release = 'INPUT_RELEASE'
and level = 'INPUT_LEVEL'
and cycle = 'INPUT_CYCLE'
"""

# Replace query's filter placeholders with the correct parameters
query = query.replace('INPUT_RELEASE', release)
query = query.replace('INPUT_LEVEL', level)
query = query.replace('INPUT_CYCLE', cycle)
query = query.replace('INPUT_DATE', date)
query = query.replace('INPUT_TIME', time)

# Connect to Oracle DB
import cx_Oracle
connection = cx_Oracle.connect('username', 'password', 'dbhost.example.com/service', encoding='UTF-8')

# Write query to dataframe
import pandas as pd
df = pd.read_sql(query, connection)

# Close the connection
connection.close()

# Show dataframe
df

Буду очень признателен, если кто-нибудь поможет мне улучшить это!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...