In mentioned example, first part of problem is to get sequence numbers from v$log. These numbers will ensure backup of all necessary archive log files. In Linux bash it is very easy and looks like:
MIN1=`echo "select 'xX '||MIN(sequence#) from v\\$log where thread#=1;" | sqlplus -s "/ as sysdba" | grep "xX" | awk '{print $2}'`But on Windows shell it was really a challenge, especially for me-a non Windows guy. So I decide to write this blog to be more like documentation for me and maybe for some others that may fall in same problem.
The solution
echo set timi off head off^&echo. select MIN(sequence#) from v$log where thread#=1; | sqlplus -s "/ as sysdba" | findstr . > result.tmp FOR /F %i IN (result.tmp) DO @set MIN1=%i @echo %MIN1% del result.tmpAnd here is live result:
C:\>echo set timi off head off^&echo. select MIN(sequence#) from v$log where thread#=1; | sqlplus -s "/ as sysdba" | findstr . > result.tmp C:\>FOR /F %i IN (result.tmp) DO @set MIN1=%i C:\>@echo %MIN1% 243
The end
I do not want to mention all the problems that I faced, but the main was "how to create new line" in windows shell (because of "head off and timi off" part that was needed to be passed to sqlplus initially).As you may see, mine solution store semi result in result.tmp file. I was not able to make solution without file so if anyone of you find a way ... appreciate in front to be informed.
Cheers!
No comments :
Post a Comment