Нет прямого способа использовать SPOOL
в cx_Oracle .
Проблема в том, что SPOOL
является SQL * PLUS определенной командой.Это не команда Oracle SQL.Поэтому фактическая буферизация обрабатывается на стороне клиента.Когда вы выполняете такие действия, как
SPOOL ON
SET PAGESIZE 0
SET SERVEROUTPUT ON
COLUMN username FORMAT A20
, все эти команды являются SQL * PLUS командами, локальными (на стороне клиента) командами, и они не отправляются на сервер Oracle и не изменяютПоведение сеанса Oracle вообще.
Эти команды предназначены только для манипулирования способом отображения вывода с сервера Oracle на экране (или записи в файл или принтер в случае SPOOL).
Вы можете идентифицировать локальную команду по тому, что ее не нужно заканчивать точкой с запятой ;
(в большинстве случаев).
Полная ссылка SQL * PLUS Команды можно найти здесь: https://docs.oracle.com/database/121/SQPUG/ch_twelve001.htm#SQPUG023