shell脚本操作oracle数据库

最近由于工作原因需要用shell操作oracle就写了一个脚本

该脚本共有两个函数

1,db_query   主要是查询数据库(因为要处理查询厚的结果).

2,db_execute 主要是进行增,删,该操作.


#!/bin/bash


function db_query(){

    SQL=$1
    NUMPERLINE=$2
    #DBNAME=
    DBNMAE=`
    sqlplus -s /nolog <     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 <     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

你可能感兴趣的:(数据库)