我在shell脚本中相当初级,以下是详细信息..
我正在寻找解决SQL查询的最佳方法,并根据该数据执行一些逻辑。我使用了以下代码段。
shellvariable = sqlplus $user/$passwd <<END
select count(1) from table1;
end
EOF
if [$ shellvariable -ne 0]然后 &LT;&GT; 网络
是否有更好的方法来实现相同的目标..
答案 0 :(得分:4)
你走在正确的轨道上。在shell脚本编写时,sqlplus是与数据库交互的最佳方式,但有两点需要注意:
对于正在学习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)