В SQLAlchemy CORE есть ли способ использовать bindparam () для позднего связывания параметра type_ функции fun c .cast вместо столбца?
Я написал функцию, возвращающую "запеченный" запрос ", который извлекает настройки, хранящиеся в столбце XML. Я хочу, чтобы извлеченное значение было приведено к типу в зависимости от заданного c извлеченного значения (это зависит от параметра, связанного с xpath).
Может быть, необходимо @compile что-то, чтобы позволить bindparam () вернуть тип вместо элемента столбца ...
def bake_extract_settings_query(self):
return (
select([
func.cast(
func.cast(
func.xpath(
func.cast(
bindparam("xpath"),
Text),
func.cast(adm_preference.c.data, XMLType),
type_=ARRAY(XMLType))[1],
Text),
bindparam("output_type") # <---- the problem
).label("preference")
])
.where(adm_preference.c.code == "_mainpref_")
.limit(1))