@@ -419,7 +419,7 @@ reverted when a connection is returned to the connection pool.
419419
420420 :ref: `SQL Server Transaction Isolation <mssql_isolation_level >`
421421
422- :ref: `Oracle Transaction Isolation <oracle_isolation_level >`
422+ :ref: `Oracle Database Transaction Isolation <oracle_isolation_level >`
423423
424424 :ref: `session_transaction_isolation ` - for the ORM
425425
@@ -588,17 +588,17 @@ To sum up:
588588Using Server Side Cursors (a.k.a. stream results)
589589-------------------------------------------------
590590
591- Some backends feature explicit support for the concept of "server
592- side cursors" versus "client side cursors". A client side cursor here
593- means that the database driver fully fetches all rows from a result set
594- into memory before returning from a statement execution. Drivers such as
595- those of PostgreSQL and MySQL/MariaDB generally use client side cursors
596- by default. A server side cursor, by contrast, indicates that result rows
597- remain pending within the database server's state as result rows are consumed
598- by the client. The drivers for Oracle generally use a "server side" model,
599- for example, and the SQLite dialect, while not using a real "client / server"
600- architecture, still uses an unbuffered result fetching approach that will
601- leave result rows outside of process memory before they are consumed.
591+ Some backends feature explicit support for the concept of "server side cursors"
592+ versus "client side cursors". A client side cursor here means that the
593+ database driver fully fetches all rows from a result set into memory before
594+ returning from a statement execution. Drivers such as those of PostgreSQL and
595+ MySQL/MariaDB generally use client side cursors by default. A server side
596+ cursor, by contrast, indicates that result rows remain pending within the
597+ database server's state as result rows are consumed by the client. The drivers
598+ for Oracle Database generally use a "server side" model, for example, and the
599+ SQLite dialect, while not using a real "client / server" architecture, still
600+ uses an unbuffered result fetching approach that will leave result rows outside
601+ of process memory before they are consumed.
602602
603603.. topic :: What we really mean is "buffered" vs. "unbuffered" results
604604
@@ -1807,17 +1807,18 @@ Current Support
18071807~~~~~~~~~~~~~~~
18081808
18091809The feature is enabled for all backend included in SQLAlchemy that support
1810- RETURNING, with the exception of Oracle for which both the cx_Oracle and
1811- OracleDB drivers offer their own equivalent feature. The feature normally takes
1812- place when making use of the :meth: `_dml.Insert.returning ` method of an
1813- :class: `_dml.Insert ` construct in conjunction with :term: `executemany `
1814- execution, which occurs when passing a list of dictionaries to the
1815- :paramref: `_engine.Connection.execute.parameters ` parameter of the
1816- :meth: `_engine.Connection.execute ` or :meth: `_orm.Session.execute ` methods (as
1817- well as equivalent methods under :ref: `asyncio <asyncio_toplevel >` and
1818- shorthand methods like :meth: `_orm.Session.scalars `). It also takes place
1819- within the ORM :term: `unit of work ` process when using methods such as
1820- :meth: `_orm.Session.add ` and :meth: `_orm.Session.add_all ` to add rows.
1810+ RETURNING, with the exception of Oracle Database for which both the
1811+ python-oracledb and cx_Oracle drivers offer their own equivalent feature. The
1812+ feature normally takes place when making use of the
1813+ :meth: `_dml.Insert.returning ` method of an :class: `_dml.Insert ` construct in
1814+ conjunction with :term: `executemany ` execution, which occurs when passing a
1815+ list of dictionaries to the :paramref: `_engine.Connection.execute.parameters `
1816+ parameter of the :meth: `_engine.Connection.execute ` or
1817+ :meth: `_orm.Session.execute ` methods (as well as equivalent methods under
1818+ :ref: `asyncio <asyncio_toplevel >` and shorthand methods like
1819+ :meth: `_orm.Session.scalars `). It also takes place within the ORM :term: `unit
1820+ of work ` process when using methods such as :meth: `_orm.Session.add ` and
1821+ :meth: `_orm.Session.add_all ` to add rows.
18211822
18221823For SQLAlchemy's included dialects, support or equivalent support is currently
18231824as follows:
@@ -1827,8 +1828,8 @@ as follows:
18271828* SQL Server - all supported SQL Server versions [# ]_
18281829* MariaDB - supported for MariaDB versions 10.5 and above
18291830* MySQL - no support, no RETURNING feature is present
1830- * Oracle - supports RETURNING with executemany using native cx_Oracle / OracleDB
1831- APIs, for all supported Oracle versions 9 and above, using multi-row OUT
1831+ * Oracle Database - supports RETURNING with executemany using native python-oracledb / cx_Oracle
1832+ APIs, for all supported Oracle Database versions 9 and above, using multi-row OUT
18321833 parameters. This is not the same implementation as "executemanyvalues", however has
18331834 the same usage patterns and equivalent performance benefits.
18341835
0 commit comments