Настройка: Oracle DB работает на компьютере с Windows
Mac подключен к базе данных, оба в одной сети
Проблема: когда я создал последовательность в SQL Developer, я могу видеть и использовать последовательность в этом сеансе. Если я выйду из системы и войду снова, последовательность все еще там. Но если я попытаюсь использовать последовательность через Python и cx_Oracle, это не сработает. Это также не работает наоборот.
[В SQL Developer: пользователь: uc]
create SEQUENCE seq1;
select seq1.nextval from dual;
---> 1
commit;
--› хотя оператор create
является методом DDL, на всякий случай
[войти через Python, пользователь: uc]
select seq1.currval from dual;
--› ORA-08002 Последовательность seq1.currval не определена в этом сеансе
Код питона:
import cx_Oracle
cx_Oracle.init_oracle_client(lib_dir="/Users/benreisinger/Documents/testclients/instantclient_19_8", config_dir=None, error_url=None, driver_name=None)
# Connect as user "hr" with password "hr" to the "orclpdb" service running on a remote computer.
connection = cx_Oracle.connect("uc", "uc", "10.0.0.22/orcl")
cursor = connection.cursor()
cursor.execute("""
select seq1.currval from dual
""")
print(cursor)
for seq1 in cursor:
print(seq1)
Ошибка говорит о том, что [seq1] не был определен в этом сеансе, но почему работает следующее:
select seq1.nextval from dual
--› возвращает 2
Даже после выпуска этого я не могу использовать seq1.currval
Кстати, select sequence_name from user_sequences
возвращает seq1
в Python
[как пользователь SYS]
select * from v$session
where username = 'uc';
--› возвращает ноль строк
Почему seq1
недоступен для программы python?
Примечание. С таблицами все работает нормально.
РЕДАКТИРОВАТЬ: также с заглавными буквами "UC", строки не возвращаются