Bulk export SQL result — Oracle DB

Простейший скрипт для потоковой выгрузки результатов выполнения скриптов в БД. Скрипт сканирует каталоги на наличие файлов *sql, выполняет в зависимости от требуемой подсистемы, результат выгружает в виде файла с расширением html, т.е. filename.sql -> filename.html

#!/bin/bash

export ORACLE_HOME=/oracle/orabase/client_1
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=American_America.UTF8
export IMBASEDIR=/oracle/sql_to_html

change_chars() {

sed -i s/\‘/\'/g $IMDIR/*
sed -i s/\’/\'/g $IMDIR/*
}

xls() {
IMDIR=$IMBASEDIR/$FP
echo -e "Execute in $FP. You files is:\n"
ls $IMDIR/*sql
echo -e "\nAre you sure?(y/N)\n"
read answer
case $answer in
y|Y|yes|YES)
change_chars;

rm -f $IMDIR/*.html

ls $IMDIR/*sql|awk -F "." '{print $1}'|while read IMs; do

sqlplus -S $CONNECT_STRING < < EOF > /dev/null
SET ECHO OFF
SET PAGESIZE 50000
SET FEEDBACK OFF
SET MARKUP HTML ON
SET NUM 24

spool $IMs.utf8.html

@$IMs.sql

SET MARKUP HTML OFF
SPOOL OFF

exit;
EOF

echo -e "$IMs.sql processed ok"
mv $IMs.sql $IMs.sql.ok
done

;;
*)
echo -e "Ok, nothing to do"
;;
esac
}



echo -e "Enter you FP:\n 1. nsi \n 2. ufos"
read fp;
case $fp in
1)
export CONNECT_STRING="apps/суперпароль@сервис_БД";
export FP=NSI;
xls;
;;
2)
export CONNECT_STRING="ufos_ref/суперпароль@сервис_БД";
export FP=UFOS_REF;
xls;
;;
*)
echo -e "Ok, nothing to do"
;;
esac

About

View all posts by

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.