【问题标题】:sqlplus access and email access using shell script使用 shell 脚本的 sqlplus 访问和电子邮件访问
【发布时间】:2010-09-24 13:47:51
【问题描述】:

我在 shell 脚本方面相当初级,以下是详细信息..

我正在寻找触发 sql 查询并基于该数据执行一些逻辑的最佳方法。我用过下面的sn-p..

shellvariable=sqlplus $user/$passwd <<END select count(1) from table1; end EOF

如果[$shellvariable -ne 0] 那么 菲

有没有更好的方法来执行相同的操作..

【问题讨论】:

    标签: database oracle shell sqlplus


    【解决方案1】:

    你在正确的轨道上。 sqlplus 是您在编写 shell 脚本时与数据库交互的最佳方式,但需要注意两点:

    1. 使用“-S”参数停止 sqlplus 从打印所有 申请信息
    2. 要将数据直接读取到变量中,您将 需要一些sqlplus环境 将输出修剪回的设置 正是你想要的

    对于任何正在学习 shell 脚本以帮助他们管理和自动化 Oracle 数据库管理的 DBA,我强烈推荐 Jon Emmons 的书 Oracle Shell Scripting。它教授了一个很棒的 shell 脚本介绍课程,但在对 DBA 真正有用和有趣的任务的上下文中。

    最后一点:如果您要做的不仅仅是简单的 DBA 任务,我建议您不要使用 shell 脚本,而是使用具有适当数据库支持的脚本语言。 Perl 对于 Oracle 来说是一个不错的选择,因为它是随数据库一起安装的。

    Here's an example 在 bash 和 perl 中完成的 Oracle 脚本。在 shell 版本中,它是如何将特定值读取到 shell 变量的:

    alertlog=$(sqlplus -S \/ as sysdba 2> /dev/null <<EOF
    SET NEWPAGE 0
    SET SPACE 0
    SET LINESIZE 80
    SET PAGESIZE 0
    SET ECHO OFF
    SET FEEDBACK OFF
    SET VERIFY OFF
    SET HEADING OFF
    SELECT value 
    FROM   v\$parameter 
    WHERE  name = 'background_dump_dest';
    EOF
    )
    

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 1970-01-01
      • 2014-08-22
      • 2021-12-31
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      相关资源
      最近更新 更多