Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Fixes for the SQLAlchemy 0.4 and 0.5 Oracle driver

Project Description


Fix SQLAlchemy 0.4 and 0.5 Oracle quoting and offset/limit problems.

This package monkeypatches the SQLAlchemy Oracle driver with backports from the SQLAlchemy 0.6 branch. Fixes included are:

  • Reserved words. Before 0.6 no Oracle-specific reserved words were included, requiring you to rename columns and labels, making it difficult to code in a database-neutral fashion.

    Note that the oracle reserved words list in this package is a superset of the list in SQLAlchemy 0.6 (at least until SQLAlchemy branches/rel_0_6 r6245). This package includes semi-reserved identifiers as defined by the Oracle V$RESERVED_WORDS view

  • Bindparameter quoting. Using a reserved word as a bind parameter requires quoting as well. Parameters are quoted in the generated SQL code, and all use of the parameters during execution correctly uses the quoted versions.

  • Limit/offset handling. 0.6 introduces a (much) better method of implementing query limits and offsets in Oracle, following recommended Oracle practice. The 0.4/0.5 method could result in incorrect ordering, or would completely fail when sorting on a aliased column.

    The backport includes support for the optimize_limits=False dialect flag. For more information on the change, see SQLAlchemy ticket #536.

To use, simply add an import to this package:

import collective.saoraclefixes # apply oracle fixes

Note that the patches will only apply when SQLAlchemy versions 0.4 and 0.5 are used. All patching activity will be logged via python’s logger module with loglevel DEBUG.


collective.saoraclefixes is distributed under the MIT license, just like SQLAlchemy.


Backporting work
Martijn Pieters at Jarn


1.2 - 2009-08-20

  • Disable FromClause.default_order_by in 0.4; 0.5 removes this functionality altogether, it’s not needed, and interferes with the quoting of rowid on Oracle.

1.1 - 2009-08-12

  • Add the improved LIMIT/OFFSET handling from 0.6.

1.0 - 2009-08-05

  • Initial release

Release History

This version
History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(12.1 kB) Copy SHA256 Hash SHA256
Source None Aug 20, 2009

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting