首页 文章

通过sqlplus RENning shell脚本

提问于
浏览
0

我在prod env中以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登录的另一种方式是suracle,因为oracle是不可能的

我认为这是使用PLSQL实现它的方法之一: -

http://www.dba-oracle.com/t_execute_shell_script_plsql_procedure.htm

但我不确定 .

1 回答

  • 1

    SQL * Plus是一个客户端应用程序 . 它可以在客户端计算机上生成进程,该进程将在客户端上运行shell脚本 . 它不能在数据库服务器上生成进程 .

    在链接到的时候,可以使用数据库服务器上的 dbms_scheduler 包在服务器上生成将运行批处理文件的进程 . 您可以使用Java存储过程执行类似的操作,因为它也可以在服务器上运行 . 如果安装了适当的调度程序代理, dbms_scheduler 也能够run jobs on remote servers但是在绝大多数情况下这似乎不太可能特别有用 .

相关问题