#!/bin/sh
一.最简单的调用sqlplus
sqlplus -S "sys/unimas as sysdba" << !
select to_char(sysdate,'yyyy-mm-dd') today from dual;
exit;
!
[oracle@hb shell_test]$ ./echo_time
TODAY
----------
2011-03-21
-S 是silent mode,不输出类似“SQL>”,连接数据库,关闭数据库之类的信息。
eof可以是任何字符串 比如"laldf"那么当你输入单独一行laldf时"shell认为输入结束,但是必须表示块开始必须使用<<;
开始和结束要匹配这个符号“<<”后面的内容
举例子:
[oracle@hb shell_test]$ sqlplus -s "sys/unimas as sysdba" << abc
> select to_char(sysdate,'yyyy-mm-dd') today from dual;
> exit;
> abc
TODAY
----------
2011-03-21
二.sqlplus的结果传递给shell的方法一
[oracle@hb shell_test]$ cat test2.sh
#!/bin/bash
VALUE=`sqlplus -S "test/unimas" << !
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
select to_char(sysdate,'yyyy-mm-dd') today from dual;
exit
!`
echo $VALUE
if [ -n "$VALUE" ]; then
echo "The rows is $VALUE"
exit 0
else
echo "There is no row"
fi
三.sqlplus的结果传递给shell的方法二
[oracle@hb shell_test]$ cat test1.sh
#!/bin/bash
sqlplus -S "test/unimas" << !
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
col coun new_value v_coun
select count(*) coun from lesson;
exit v_coun
!
VALUE="$?"
echo "show row:$VALUE"
col coun new_value v_coun v_coun为number类型。因为exit 只能返回数值类型。
四.把shell参数传递给sqlplus
#!/bin/bash
t_id="$1"
sqlplus -S "test/unimas" << !
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
select teachername from teacher where id=$t_id;
exit
!
五.sqlplus的结果存储在文件中
#!/bin/sh
sqlplus -S "test/unimas"<<EOF
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
spool spool_file
SELECT * from teacher;
spool off
exit;
EOF
http://blog.chinaunix.net/space.php?uid=9124312&do=blog&id=181372
查看调度系统状态脚本:
#!/bin/sh
if [[ -z "$1" ]] || [[ "$1" -ne 0 && "$1" -ne 2 ]]
#使用[[ ]] 进行逻辑短路操作
then
echo "Please input your parameter: query status[0,2]!"
exit
fi
#for buname in cnlog enlog ItLog JrLog AuLog InnerLog
for buname in cnlog enlog
do
sqlplus -S 'etl/etl@dw_testdb' << abc #使用 << EOF方式输入信息
set line 155
set pages 9999
SELECT /*+ PARALLEL(a,4) */ * FROM $buname.hla_job_rec a where status = $1;
exit
abc
done
分享到:
相关推荐
关于sqlplu在Bash_shell上使用技巧
sqlplusw 与 sqlplus登陆数据库的方法总结
Oracle SQLPLUS基础及sqlplus命令详解,详细阐述了oracle sqlplus基本命令和相关用法
$ sudo yum install rlwrap-0.42-1-x64.... stty erase ^h # 解决 shell 下sqlplus 退格问题 alias sqlplus='rlwrap sqlplus' alias rman='rlwrap rman' alias lsnrctl='rlwrap lsnrctl' $ source ./bash_profile
这是本人总结的一些sqlplus的常用指令,希望大家喜欢!!!
SQLPLUS 常用指令收集与技巧, 改文档中列举了sql脚本中使用的各种sqlplus命令技巧,在编写shell时很有用
在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。 linux环境中有2个dba的用户:oracle、erm 还有1个web用户:erm 在linux环境中,这三个用户都可以直接在任意目录下执行该shell...
Sqlplus常用的命令,数据库管理员的学习笔记。
sqlplus 常用命令行参数,Oracle 中 sqlplus 初学者用的 常用命令行参数
自定义集成basic与sqlplus
Uedit32与SQLPlus结合使用技巧 让你觉得Uedit32与SQLPlus完美结合
SQLPLUS命令使用大全SQLPLUS命令使用大全SQLPLUS命令使用大全SQLPLUS命令使用大全
SQLPlus命令,SQLPlus命令SQLPlus命令SQLPlus命令SQLPlus命令SQLPlus命令SQLPlus命令SQLPlus命令SQLPlus命令SQLPlus命令
ORACLE SQLPLUS 命令大全ORACLE SQLPLUS 命令大全ORACLE SQLPLUS 命令大全ORACLE SQLPLUS 命令大全ORACLE SQLPLUS 命令大全
详细介绍ORACLE sqlplus命令,详细介绍ORACLE sqlplus命令
实现sqlplus上下翻页
sqlplus11.2 rpm安装包
sqlplus常用命令.txt
sqlplus常用命令大全,可供参考!!