使用shell脚本进行sqlplus访问和电子邮件访问

时间:2008-11-29 18:04:19

标签: database oracle shell sqlplus

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

我正在寻找解决SQL查询的最佳方法,并根据该数据执行一些逻辑。我使用了以下代码段。

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

if [$ shellvariable -ne 0]然后 &LT;&GT; 网络

是否有更好的方法来实现相同的目标..

2 个答案:

答案 0 :(得分:4)

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

  1. 使用“-S”参数停止 sqlplus从打印全部 申请信息
  2. 将数据直接读入变量,您将 需要一些sqlplus环境 将输出修剪回的设置 只是你想要的东西
  3. 对于正在学习shell脚本以帮助他们管理和自动化Oracle数据库管理的任何DBA,我强烈推荐Jon Emmons的书Oracle Shell Scripting。它教授一个很棒的shell脚本入门课程,但是在DBA真正有用和有趣的任务环境中。

    最后要注意的是:如果您正在执行任何操作而不是简单的DBA任务,我建议不要使用shell脚本,而是使用具有适当数据库支持的脚本语言。 Perl是Oracle的一个很好的选择,因为它与数据库一起安装。

    在bash和perl中完成Oracle脚本的

    Here's an example。从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
    )
    

答案 1 :(得分:0)