2012-02-10 20 views
6

Tôi có một kịch bản sử dụng lõi sqlalchemy, nhưng tôi tiếc là cần phải viết lại nó để sử dụng sql thô để thay thế. Có thể dịch sqla của tôi chèn/etc ... báo cáo vào một phương ngữ specfic (oracle ở đây) mà không có một động cơ rõ ràng?Chuyển đổi câu lệnh lõi sqlalchemy thành SQL thô mà không cần kết nối?

Về cơ bản, có thể sử dụng công cụ không mặc định cho str (some_sqla_core_expression)?

Trả lời

7

bất kỳ biểu hiện sẽ trở thành một chuỗi như thế này (về cơ bản 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 

Có thực sự là một ví dụ về điều này trong hướng dẫn SQL tại thời điểm ở đây: http://docs.sqlalchemy.org/en/latest/core/tutorial.html#using-joins

+0

Cảm ơn, tôi bằng cách nào đó bỏ lỡ này trong hướng dẫn –

Các vấn đề liên quan