Возврат результатов из базы данных Redshift на основе условия IF в Python - PullRequest
0 голосов
/ 03 августа 2020

Мне нужно извлечь результаты из redshift database на основе условия IF, записанного в Python.

Предположим, у меня есть таблица с CustomerID, SHipment Number, Invoice Station, ect в качестве столбцов в Redshift table, я хочу чтобы получить все записи из таблицы Redshift, если существует идентификатор клиента, который должен быть проверен пользователем. et c.

Python

import psycopg2

con=psycopg2.connect(dbname= 'datamodel', host='123', 
                     port= '5439', user= 'bce', password= 'Ciz')

cur = con.cursor()
HWB = input("Enter the House Bill Number : ")

#if CustomerID = HWB:
cur.execute("SELECT source_system, file_nbr, file_date, CustomerID 
             FROM public.shipment_info where CustomerID = $HWB")

results = cur.fetchall()

cur.close() 
con.close()

print(results)

1 Ответ

1 голос
/ 04 августа 2020

Рассмотрите возможность параметризации значения, вводимого пользователем (иначе рискуете печально известным, Bobby Tables ).

# PREPARED STATEMENT WITH PLACEHOLDER
sql = """SELECT source_system, file_nbr, file_date, CustomerID 
         FROM public.shipment_info 
         WHERE CustomerID = %s
      """

# BIND PARAM VALUES WITH TUPLE OF ONE-ITEM
cur.execute(sql, (HWB,))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...