Я пытаюсь скомпилировать запрос, используя диалект db2 ibm_db_sa.После компиляции он связывает '?'вместо параметра.
Я пробовал то же самое для диалектов MSSQL и Oracle, они дают ожидаемые результаты.
import ibm_db_sa
from sqlalchemy import bindparam
from sqlalchemy import Table, MetaData, Column, Integer
tab = Table('customers', MetaData(), Column('cust_id', Integer,
primary_key=True))
stmt = select([tab]).where(literal_column('cust_id') ==
bindparam('cust_id'))
ms_sql = stmt.compile(dialect=mssql.dialect())
oracle_q = stmt.compile(dialect=oracle.dialect())
db2 = stmt.compile(dialect=ibm_db_sa.dialect())
Если я распечатаю все 3 запроса, будет выведено:
MSSQL => SELECT customers.cust_id FROM customers WHERE cust_id = :cust_id
Oracle => SELECT customers.cust_id FROM customers WHERE cust_id = :cust_id
DB2 => SELECT customers.cust_id FROM customers WHERE cust_id = ?
Есть ли способ получить запрос DB2 такой же, как у других?