Oracle auto updating
SQLAlchemy on the other hand considers an all-lower case identifier name to be case insensitive.
The Oracle dialect converts all case insensitive identifiers to and from those two formats during schema level communication, such as reflection of tables and indexes.
Using an UPPERCASE name on the SQLAlchemy side indicates a case sensitive identifier, and SQLAlchemy will quote the name - this will cause mismatches against data dictionary data received from Oracle, so unless identifier names have been truly created as case sensitive (i.e.
using quoted names), all lowercase names should be used on the SQLAlchemy side.
cx_Oracle prior to version 6 would require that LOB objects be read before a new batch of rows would be read, as determined by the .
ROW_NUMBER() OVER (ORDER BY), to provide LIMIT/OFFSET (note that the majority of users don’t observe this).
To suit this case the method used for LIMIT/OFFSET can be replaced entirely.
As of the 6 series, this limitation has been lifted.
Nevertheless, because SQLAlchemy pre-reads these LOBs up front, this issue is avoided in any case.
By default, “implicit returning” typically only fetches the value of a single Oracle doesn’t have native ON UPDATE CASCADE functionality. When using the SQLAlchemy ORM, the ORM has limited ability to manually issue cascading updates - specify Foreign Key objects using the “deferrable=True, initially=’deferred’” keyword arguments, and specify “passive_updates=False” on each relationship().