Вероятно, вы хотите использовать функцию subprocess.Popen.communicate()
. Документы довольно выразительны.
При вызове DBMS_SCHEDULER.create_job(...)
вы указываете значение параметра job_class
.
Пользователь должен иметь привилегии EXECUTE
в классе заданий CONSOLIDATE_CLASS
для создания заданий, принадлежащих этому классу ( документация link ):
grant execute on user_who_owns_class.CONSOLIDATE_CLASS to user_who_creates_job
UPDATE
Чтобы проверить, разрешено ли пользователю создавать задание с этим классом, вы можете посмотреть all_tab_privs
:
select count(1)
from all_tab_privs
where
table_name = 'PROD_DISPATCH_JOB'
and
table_schema = upper('<job class owner name here>')
and
privilege = 'EXECUTE'
and
grantee in (
select 'PUBLIC' from dual -- granted to public
union
select upper('<current_user_name_here>') from dual -- direct grant
union
select role from session_roles -- roles enabled for current session
)
Вход Ist из пользователя sys / any sysdba и предоставление гранта путем запроса, как показано ниже:
Начать создание гранта, создайте любое задание для ADMUSER; предоставить выполнение в DBMS_SCHEDULER ADMUSER; предоставить диспетчеру управления ADMUSER; END;