Нам нужно скопировать записи между двумя схемами базы данных Oracle.
Вручную, мы можем сделать это с помощью команды SQL * PLUS COPY:
http://www.oracleutilities.com/SQLPLus/copy.html
Однако мы хотели бы автоматизировать это с помощью cx_Oracle, если это возможно (нам также нужно сделать некоторые другие вещи - например, SSH-взаимодействия, следовательно, использовать Python и cx_Oracle).
Однако, если я попытаюсь выполнить COPY внутри cx_Oracle, команда, похоже, не понравится:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: ORA-00900: invalid SQL statement
Я предполагаю, что это потому, что COPY - это специфическая команда SQL * PLUS, а не часть стандартной спецификации SQL?
Так или иначе, есть ли способ заставить команду COPY (или любые другие специфичные для SQL * PLUS расширения) работать в cx_Oracle?
Я считаю, что можно использовать INSERT INTO ... SELECT для достижения чего-то похожего, однако для этого требуется ссылка на базу данных, если две рассматриваемые базы данных находятся на отдельных экземплярах или хостах Oracle, и у нас не всегда есть разрешение на создание эти ссылки.
Ура,
Victor