【发布时间】:2014-06-25 22:47:30
【问题描述】:
我在 prod 环境中以 oracle 身份登录,并且我需要在使用 SQLPLUS 时在远程主机上运行 SHELL 脚本。我正在尝试通过 python 做到这一点。有什么办法吗?
我可以从 sqlplus 运行 SQL 脚本或 sql 命令,如下所示:-
session = Popen(['sqlplus','-S','abc/abc@'+str(hostname)+':1000/'+str(dbname)+''], stdin=PIPE, stdout=PIPE, stderr=PIPE)
session.stdin.write('SPOOL '+str(op_file)+' \n'
' '+str(data)+ '\n');
session.stdin.write(' ; \n')
session.stdin.write('exit \n')
session.stdin.flush()
stdout, stderr = session.communicate()
但是当我想运行一个 shell 脚本时,有什么方法可以通过 sqlplus 本身来完成,因为通过 ssh 登录和作为 oracle 的 sudo 的另一种方式是不可能的
我认为这是使用 PLSQL 的方法之一:-
http://www.dba-oracle.com/t_execute_shell_script_plsql_procedure.htm
但不确定。
【问题讨论】:
标签: python oracle shell sqlplus