sqlalchemy для создания временной таблицы - PullRequest
0 голосов
/ 28 августа 2018

Я создал временную таблицу с sqlalchemy (с базовой базой данных postgres), которая будет объединена с таблицей базы данных. Однако в некоторых случаях, когда значение пусто '', postgres выдает ошибку:

failed to find conversion function from unknown to text

SqlAlchemy собирает все в следующем контексте

[SQL: 'WITH temp_table AS \n(SELECT %(param_1)s AS id, %(param_2)s AS email, %(param_3)s AS phone)\n SELECT campaigns_contact.id, campaigns_contact.email, campaigns_contact.phone \nFROM campaigns_contact JOIN temp_table ON temp_table.id = campaigns_contact.id AND temp_table.email = campaigns_contact.email AND temp_table.phone = campaigns_contact.phone'] [parameters: {'param_1': 83, 'param_2': '', 'param_3': '+1234567890'}]

Я собираю временную таблицу следующим образом

stmts = []
for row in import_data:
    row_values = [literal(row[value]).label(value) for value in values]
    stmts.append(select(row_values))

subquery = union_all(*stmts)
subquery = subquery.cte(name="temp_table")

Кажется, проблема здесь в части

...%(param_2)s AS email...

, который после замены param_2 приводит к

...'' AS email...

, что приведет к ошибке, указанной выше. Один из способов решить эту проблему - выполнить приведение

...''::text AS email...

Однако я не знаю, как выполнить ::text приведение с помощью sqlalchemy!?

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