在shell脚本中按行读取配置文件信息,并近程连贯Oracle数据库,为库中的表创立20170101到20220101日期的分区
#!/bin/bash#读取Lv_ConfigDb配置信息if [ -f $Lv_ConfigDb ] ; then while read line do #连贯数据库信息 Lv_str=`sed -n '2p' ${Lv_ConfigDb} | awk -F"=" '{print $2}'` #获取第二行数据,以=号为分隔符,取第二个字符串 #sqlplus目录 Lv_sqlplus=`sed -n '4p' ${Lv_ConfigDb}| awk -F"=" '{print $2}'` #同理获取第四行数据 #sq1文件目录 Lv_table=`sed -n '10p' ${Lv_ConfigDb}| awk -F"=" '{print $2}'` done < $Lv_ConfigDbelse echo "${Lv_ConfigDb}不存在”fipartition=${Lv_table}partition_table2.txt1=$(cat "$Lv_table"/partition_table2.txt| wc -l) #获取文件中共有多少条数据echo ${1}for((i=1;i<=$1;i++))dotable=$(sed -n "$i"p $partition)${Iv_sq1p1us} ${Iv_str} <<EOFdeclare cursor acur is select to_char(to_date('20170101','yyyymmdd')+rowmum-1,'yyymmdd') from dual connect by rowmum<=to_date('20210617','yyyymmdd')-to_date ('20170101', 'yyymmdd')+1; --获取两段日期之间所有日期的游标 v_day varchar2(8 char):=";begin open acur; loop fetch acur into v_day; dbms_output.put_line(v_day); exit when acur%notfound; execute immediate 'alter table $table add partition P_'||v_day||' values('||v_day||')'; end 1oop; close acur;end;/exit;EOFecho $tableecho "表分区己创立"echo "--------------------------------------------"done