通过shell脚本对其他服务器上的数据库执行oracle查询

Posted

技术标签:

【中文标题】通过shell脚本对其他服务器上的数据库执行oracle查询【英文标题】:Executing oracle query to database at other server via shell script 【发布时间】:2014-11-14 07:18:21 【问题描述】:

我有一个图像服务器 (A) 和一个数据库服务器 (B)。在分析 B 的查询结果后,我必须通过 shell 脚本处理图像服务器中的文件。

我需要帮助来编写连接到服务器 B 数据库的脚本并执行查询并将结果传递到变量中。该脚本将在服务器 A 上运行。Oracle 用作数据库

【问题讨论】:

【参考方案1】:

一般在 Shell 中执行 Oracle-SQL:

#!/usr/bin/bash

sqlplus -s $user/$pass@$db<<EOFSQL
    # your sql here
    quit
EOFSQL

获取 SQL-Script-Output(包括错误消息)到变量的示例:

result=$(  sqlplus -s $db_user/$db_pwd@$db @$qry  2>&4 ;  4>&1)

如果不使用heredoc,$qry 将通过您的sql脚本的路径。

【讨论】:

我试过了,但是 oracle 客户端没有安装在运行 shell 的服务器上,因此出现了一个错误,指出找不到该命令。我必须在 50 多台服务器上执行此操作,因此我无法在其中安装 oracle 客户端。请提出一个没有 sqlplus 的解决方案。

以上是关于通过shell脚本对其他服务器上的数据库执行oracle查询的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本中实现hbase shell命令调用

如何在 Linux 中从 C 执行 shell 脚本?

linux远程通过shell脚本执行另一台linux机器上的shell文件

如何延迟 shell 脚本中的命令替换?

shell结果输出到其他服务器

Shell编程