Конвертировать основные операторы sqlalchemy в сырой SQL без подключения? - PullRequest
6 голосов
/ 10 февраля 2012

У меня есть скрипт, который использует ядро ​​sqlalchemy, но мне, к сожалению, нужно переписать его, чтобы вместо него использовать raw sql. Можно ли перевести мои операторы sqla insert / etc… в специфический диалект (здесь оракул) без явного движка?

По сути, возможность использовать не-движок по умолчанию для str (some_sqla_core_expression)?

1 Ответ

7 голосов
/ 11 февраля 2012

любое выражение становится такой строкой (в основном stmt.compile(dialect=dialect)):

from sqlalchemy.sql import column, table, select
from sqlalchemy.dialects import oracle

dialect = oracle.dialect()
table = table('sometable', column('id'), column('data'))
stmt = select([table]).where(table.c.id==5).where(table.c.data=='foo')
raw_sql = unicode(stmt.compile(dialect=dialect))
print raw_sql

На самом деле пример этого есть в руководстве по SQL на данный момент здесь: http://docs.sqlalchemy.org/en/latest/core/tutorial.html#using-joins

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