shell脚本操作oracle数据库
2016-09-19 18:02
489 查看
最近由于工作原因需要用shell操作oracle就写了一个脚本
该脚本共有两个函数
1,db_query 主要是查询数据库(因为要处理查询厚的结果).
2,db_execute 主要是进行增,删,该操作.
#!/bin/bash
function db_query(){
SQL=$1
NUMPERLINE=$2
#DBNAME=
DBNMAE=`
sqlplus -s /nolog <<EOF
set echo on feedback off heading off underline off pagesize 0 verify off trimspool on trimout on;
conn SCOTT/wq123456;
$SQL
exit;
`
FIN=`echo $DBNMAE|sed 's/ /,/g'`
number=`echo $FIN|awk -F "," '{print NF}'`
i=1
newline=
while [[ $i -le $number ]]
do
re=$((i%$NUMPERLINE))
if [[ re -eq 0 ]] && [[ $i -ne $number ]]
then
newline="$newline `echo $FIN|awk -F ',' '{print $'$i'}'`\n"
elif [[ re -eq 1 ]]
then
newline="$newline`echo $FIN|awk -F ',' '{print $'$i'}'`"
else
newline="$newline `echo $FIN|awk -F ',' '{print $'$i'}'`"
fi
let i=$i+1
done
echo -e $newline
#echo $newline
#return $newline
}
function db_execute(){
SQL=$1
DBNMAE=`
sqlplus -s /nolog <<EOF
set echo on feedback off heading off underline off pagesize 0 verify off trimspool on trimout on;
conn SCOTT/wq123456;
$SQL
exit;
`
}
#db_query "select * from wqq;" 4|while read line
#do
# id=`echo $line | awk '{print $1}'`
# name=`echo $line | awk '{print $2}'`
# age=`echo $line | awk '{print $3}'`
# score=`echo $line|awk '{print $4}'`
# echo "id:$id"
# echo "name:$name"
# echo "age:$age"
# echo "score:$score"
#done
#db_query "select * from wqq" 4
#db_execute "insert into wqq values (41,'haha',90,99);"
db_execute $1
该脚本共有两个函数
1,db_query 主要是查询数据库(因为要处理查询厚的结果).
2,db_execute 主要是进行增,删,该操作.
#!/bin/bash
function db_query(){
SQL=$1
NUMPERLINE=$2
#DBNAME=
DBNMAE=`
sqlplus -s /nolog <<EOF
set echo on feedback off heading off underline off pagesize 0 verify off trimspool on trimout on;
conn SCOTT/wq123456;
$SQL
exit;
`
FIN=`echo $DBNMAE|sed 's/ /,/g'`
number=`echo $FIN|awk -F "," '{print NF}'`
i=1
newline=
while [[ $i -le $number ]]
do
re=$((i%$NUMPERLINE))
if [[ re -eq 0 ]] && [[ $i -ne $number ]]
then
newline="$newline `echo $FIN|awk -F ',' '{print $'$i'}'`\n"
elif [[ re -eq 1 ]]
then
newline="$newline`echo $FIN|awk -F ',' '{print $'$i'}'`"
else
newline="$newline `echo $FIN|awk -F ',' '{print $'$i'}'`"
fi
let i=$i+1
done
echo -e $newline
#echo $newline
#return $newline
}
function db_execute(){
SQL=$1
DBNMAE=`
sqlplus -s /nolog <<EOF
set echo on feedback off heading off underline off pagesize 0 verify off trimspool on trimout on;
conn SCOTT/wq123456;
$SQL
exit;
`
}
#db_query "select * from wqq;" 4|while read line
#do
# id=`echo $line | awk '{print $1}'`
# name=`echo $line | awk '{print $2}'`
# age=`echo $line | awk '{print $3}'`
# score=`echo $line|awk '{print $4}'`
# echo "id:$id"
# echo "name:$name"
# echo "age:$age"
# echo "score:$score"
#done
#db_query "select * from wqq" 4
#db_execute "insert into wqq values (41,'haha',90,99);"
db_execute $1
相关文章推荐
- [精]Oracle VPD详解(虚拟专用数据库)
- MYSQL和ORACLE的触发器与存储过程语法差异
- oracle数据库备份与还原
- oracle赋值问题(将同一表中某一字段赋值给另外一个字段的语句)
- ORACLE PACKAGE 包
- oracle中如何将数据库中的数据导出并导入一个台oracle中
- Oracle分页查询性能优化
- Oracle修改字符集
- Oracle控制语句(if , loop , while , for)
- oracle 自增
- Oracle如何对session进行跟踪
- 导入sql文件到oracle或mysql注意问题
- oracle 内存管理
- 更改ORACLE数据库字符集
- 【Oracle】RAC安装时multipath+udev
- Oracle学习笔记-第三章-SQL语言与SQL Plus
- Oracle SQL命令 回显
- oracle with as用法
- oracle存储过程中is和as区别
- 【DataGuard】Oracle 11g物理Active Data Guard实时查询(Real-time query)特性