@echo off REM ############################################################################ REM # rda.cmd: Shell Script Wrapper for RDA REM # REM # $Id: rda.cmd,v 1.17 2015/11/02 20:05:14 RDA Exp $ REM # ARCS: $Header: /home/cvs/cvs/RDA_8/src/scripting/bin/rda.cmd,v 1.17 2015/11/02 20:05:14 RDA Exp $ REM # REM # Copyright (c) 2002, 2016, Oracle and/or its affiliates. REM # All rights reserved. REM # REM # Change History REM # 20151102 MSC Improve compile engine upgrade. REM ############################################################################ setlocal if not "%RDA_CWD%"=="" goto CHDIR FOR %%D IN ("%CD%") DO set RDA_CWD=%%~sD :CHDIR set RDA_DIR=%~dps0. if not "%RDA_ALTER_PERL5OPT%"=="" goto ALTER set RDA_ALTER_PERL5LIB=PERL5LIB=%PERL5LIB% set RDA_ALTER_PERL5OPT=PERL5OPT=%PERL5OPT% set RDA_ALTER_PERL_DIR=PERL_DIR= set RDA_ALTER_PERL_EXE=PERL_EXE= set RDA_ALTER_PERL_INC=PERL_INC= :ALTER set PAGER=more set PERL_EXE=perl.exe set PERL_INC= set PERL5LIB= set PERL5OPT=-T if not exist %SystemRoot%\SysWOW64 goto NOCMD set RDA_WIN64=1 if exist %SystemRoot%\Sysnative\cmd.exe goto NOCMD if not exist %SystemRoot%\system32\cmd.exe goto NOCMD copy %SystemRoot%\system32\cmd.exe %RDA_CWD% >NUL 2>NUL if not exist %SystemRoot%\system32\en-US\cmd.exe.mui goto NOCMD if not exist %RDA_CWD%\en-US md %RDA_CWD%\en-US copy %SystemRoot%\system32\en-US\cmd.exe.mui %RDA_CWD%\en-US >NUL 2>NUL :NOCMD if not exist "rda.cfg" goto CHKENG set OPT="eol=# tokens=1,2 delims==" for /F %OPT% %%I in (rda.cfg) do if "%%~J" NEQ "" set INI_%%I=%%~J if "%INI_RDA_EXE%"=="" goto CHKNAT if "%INI_RDA_ENG%"=="" goto CHKNAT set RDA_EXE=%INI_RDA_EXE% goto CHKUPG :CHKENG if not exist "%RDA_DIR%\engine\rda.cfg" goto CHKNAT set OPT="eol=# tokens=1,2 delims==" cd /d "%RDA_DIR%\engine" for /F %OPT% %%I in (rda.cfg) do if "%%~J" NEQ "" set INI_%%I=%%~J cd /d "%RDA_CWD%" if "%INI_RDA_EXE%"=="" goto CHKNAT if "%INI_RDA_ENG%"=="" goto CHKNAT set RDA_EXE=%RDA_DIR%\%INI_RDA_EXE% :CHKUPG if not exist "%RDA_DIR%\engine\%INI_RDA_ENG%" goto CETST set RDA_ENG=%RDA_DIR%\engine\%INI_RDA_ENG% "%RDA_ENG%" -XRda check -V >NUL 2>NUL if %ERRORLEVEL%==0 goto CEUPG set RDA_ENG=%RDA_DIR%\engine\rda_win32.exe if "%RDA_WIN64%"=="" goto CESEL set RDA_ENG=%RDA_DIR%\engine\rda_win64.exe :CESEL if not exist "%RDA_ENG%" goto CETST :CEUPG "%RDA_ENG%" -eCFG/B_NO_CHECK=1 -XUpgrade -- engine "%RDA_EXE%" "%RDA_ENG%" :CETST if not exist "%RDA_EXE%" goto CHKNAT "%RDA_EXE%" %* goto END :CHKNAT if "%RDA_NATIVE_PERL%"=="" goto CHKPTH if not exist "%RDA_NATIVE_PERL%" goto CHKPTH "%RDA_NATIVE_PERL%" -e "die 'too old' if $] < 5.005; use strict" >NUL 2>NUL if ERRORLEVEL 1 goto CHKPTH set PERL_EXE=%RDA_NATIVE_PERL% goto DBI :CHKPTH if not "%RDA_NO_NATIVE%"=="" goto CHKAPPS FOR %%I IN (perl.exe) DO set PERL_DIR=%%~dp$PATH:I if "%PERL_DIR%"=="" goto CHKAPPS "%PERL_DIR%perl" -e "die 'too old' if $] < 5.005; use strict" >NUL 2>NUL if ERRORLEVEL 1 goto CHKAPPS set PERL_EXE=%PERL_DIR%perl goto DBI :CHKAPPS if "%ADPERLPRG%"=="" goto CHKHOME "%ADPERLPRG%" -e "die 'too old' if $] < 5.005; use strict" >NUL 2>NUL if ERRORLEVEL 1 goto CHHOME set PERL_EXE=%ADPERLPRG% goto DBI :CHKHOME if not "%IAS_ORACLE_HOME%"=="" goto CHKIAS if not "%ORACLE_HOME%"=="" goto CHKORA FOR %%I IN (sqlplus.exe) DO set ORACLE_BIN=%%~dp$PATH:I... if "%ORACLE_BIN%"=="..." goto FNDOCM1 set ORA_HOME=%ORACLE_BIN:\bin\...=% goto CHKPERL :CHKIAS set ORA_HOME=%IAS_ORACLE_HOME% goto UPDPATH :CHKORA set ORA_HOME=%ORACLE_HOME% :UPDPATH if "%ORA_HOME%"=="" goto FNDOCM1 set PATH=%ORA_HOME%\bin;%PATH% :CHKPERL if exist "%ORA_HOME%\Apache\perl\5.00503\bin\MSWin32-x86\perl.exe" goto A553 if exist "%ORA_HOME%\Apache\perl\5.00503\bin\MSWin32-x64\perl.exe" goto A553l if exist "%ORA_HOME%\Apache\perl\5.00503\bin\MSWin32-IA64\perl.exe" goto A553w if exist "%ORA_HOME%\perl\5.6.1\bin\MSWin32-x86\perl.exe" goto R561 if exist "%ORA_HOME%\perl\5.6.1\bin\MSWin32-x64\perl.exe" goto R561l if exist "%ORA_HOME%\perl\5.6.1\bin\MSWin32-IA64\perl.exe" goto R561w if exist "%ORA_HOME%\perl\5.8.3\bin\MSWin32-x86-multi-thread\perl.exe" goto R583 if exist "%ORA_HOME%\perl\5.8.3\bin\MSWin32-x64-multi-thread\perl.exe" goto R583l if exist "%ORA_HOME%\perl\5.8.3\bin\MSWin32-IA64-multi-thread\perl.exe" goto R583w if exist "%ORA_HOME%\perl\bin\perl.exe" goto R510 :FNDOCM1 set ENG_HOME=%~dps0..\ccr\engines\Windows if exist "%ENG_HOME%" goto CHKOCM if "%ORA_HOME%"=="" goto FNDOCM2 set ENG_HOME=%ORA_HOME%\ccr\engines\Windows if exist "%ENG_HOME%" goto CHKOCM set ENG_HOME=%ORA_HOME%\..\oracle_common\ccr\engines\Windows if exist "%ENG_HOME%" goto CHKOCM set ENG_HOME=%ORA_HOME%\..\utils\ccr\engines\Windows if exist "%ENG_HOME%" goto CHKOCM :FNDOCM2 if "%MW_HOME%"=="" goto FNDOCM3 set ENG_HOME=%MW_HOME%\oracle_common\ccr\engines\Windows if exist "%ENG_HOME%" goto CHKOCM set ENG_HOME=%MW_HOME%\utils\ccr\engines\Windows if exist "%ENG_HOME%" goto CHKOCM :FNDOCM3 if "%WL_HOME%"=="" goto FNDOCM4 set ENG_HOME=%WL_HOME%\..\oracle_common\ccr\engines\Windows if exist "%ENG_HOME%" goto CHKOCM set ENG_HOME=%WL_HOME%\..\utils\ccr\engines\Windows if exist "%ENG_HOME%" goto CHKOCM :FNDOCM4 if "%ORACLE_CONFIG_HOME%"=="" goto CHKCE set CCR_PRP=%ORACLE_CONFIG_HOME%\ccr\config\collector.properties if not exist "%CCR_PRP%" goto CHKCE set CCR_BIN= set OPT="eol=# tokens=1,2,* delims==\:" for /F %OPT% %%I in (%CCR_PRP%) do if "%%I"=="ccr.binHome" set CCR_BIN=%%J:\%%K if "%CCR_BIN%"=="" goto CHKCE set ENG_HOME=%CCR_BIN%\engines\Windows if not exist "%ENG_HOME%" goto CHKCE :CHKOCM if exist "%ENG_HOME%\perl\5.8.3\bin\MSWin32-x86-multi-thread\perl.exe" goto O583 if exist "%ENG_HOME%\perl\bin\perl.exe" goto O510 :CHKCE set RDA_ENG=rda_win32.exe if "%RDA_WIN64%"=="" goto TSTCE set RDA_ENG=rda_win64.exe :TSTCE if not exist "%RDA_DIR%\engine\%RDA_ENG%" goto DSPERR if exist "rda.cfg" goto DSPERR if exist "rda.exe" goto DSPERR copy "%RDA_DIR%\engine\%RDA_ENG%" rda.exe if not exist "rda.exe" goto DSPERR echo RDA_ENG="%RDA_ENG%"> rda.cfg echo RDA_EXE="rda.exe">> rda.cfg echo D_RDA="%RDA_DIR%">> rda.cfg rda.exe %* goto END :DSPERR if "%ORACLE_HOME%"=="" goto NOHOME if "%ORACLE_BIN%"=="..." goto NOHOME @echo Error: Perl not found in the PATH or in known folder locations. @echo Although the default RDA engine requires Perl, a compiled version without @echo Perl requirements is available. Please download the platform-specific RDA @echo engine from My Oracle Support and place it within the top folder of your @echo RDA installation. cmd /C exit 1 goto END :NOHOME @echo Error: ORACLE_HOME is not set @echo Please set your ORACLE_HOME. cmd /C exit 1 goto END :A553 set PATH=%ORA_HOME%\Apache\perl\5.00503\bin\MSWin32-x86;%PATH% set PERL_INC=-I"%ORA_HOME%\Apache\perl\5.00503\lib\MSWin32-x86" -I"%ORA_HOME%\Apache\perl\5.00503\lib" goto DBI :A553l set PATH=%ORA_HOME%\Apache\perl\5.00503\bin\MSWin32-x64;%PATH% set PERL_INC=-I"%ORA_HOME%\Apache\perl\5.00503\lib\MSWin32-x64" -I"%ORA_HOME%\Apache\perl\5.00503\lib" goto DBI :A553w set PATH=%ORA_HOME%\Apache\perl\5.00503\bin\MSWin32-IA64;%PATH% set PERL_INC=-I"%ORA_HOME%\Apache\perl\5.00503\lib\MSWin32-IA64" -I"%ORA_HOME%\Apache\perl\5.00503\lib" goto DBI :O583 set PATH=%ENG_HOME%\perl\5.8.3\bin\MSWin32-x86-multi-thread;%PATH% set PERL_INC=-I"%ENG_HOME%\perl\5.8.3\lib\MSWin32-x86-multi-thread" -I"%ENG_HOME%\perl\5.8.3\lib" -I"%ENG_HOME%\perl\site\5.8.3\lib\MSWin32-x86-multi-thread" -I"%ENG_HOME%\perl\site\5.8.3\lib" goto DBI :O510 set PATH=%ENG_HOME%\perl\bin;%PATH% set PERL_INC=-I"%ENG_HOME%\perl\lib" -I"%ENG_HOME%\perl\site\lib" goto DBI :R561 set PATH=%ORA_HOME%\perl\5.6.1\bin\MSWin32-x86;%PATH% set PERL_INC=-I"%ORA_HOME%\perl\5.6.1\lib\MSWin32-x86" -I"%ORA_HOME%\perl\5.6.1\lib" goto DBI :R561l set PATH=%ORA_HOME%\perl\5.6.1\bin\MSWin32-x64;%PATH% set PERL_INC=-I"%ORA_HOME%\perl\5.6.1\lib\MSWin32-x64" -I"%ORA_HOME%\perl\5.6.1\lib" goto DBI :R561w set PATH=%ORA_HOME%\perl\5.6.1\bin\MSWin32-IA64;%PATH% set PERL_INC=-I"%ORA_HOME%\perl\5.6.1\lib\MSWin32-IA64" -I"%ORA_HOME%\perl\5.6.1\lib" goto DBI :R583 set PATH=%ORA_HOME%\perl\5.8.3\bin\MSWin32-x86-multi-thread;%PATH% set PERL_INC=-I"%ORA_HOME%\perl\5.8.3\lib\MSWin32-x86-multi-thread" -I"%ORA_HOME%\perl\5.8.3\lib" goto DBI :R583l set PATH=%ORA_HOME%\perl\5.8.3\bin\MSWin32-x64-multi-thread;%PATH% set PERL_INC=-I"%ORA_HOME%\perl\5.8.3\lib\MSWin32-x64-multi-thread" -I"%ORA_HOME%\perl\5.8.3\lib" goto DBI :R583w set PATH=%ORA_HOME%\perl\5.8.3\bin\MSWin32-IA64-multi-thread;%PATH% set PERL_INC=-I"%ORA_HOME%\perl\5.8.3\lib\MSWin32-IA64-multi-thread" -I"%ORA_HOME%\perl\5.8.3\lib" goto DBI :R510 set PATH=%ORA_HOME%\perl\bin;%PATH% set PERL_INC=-I"%ORA_HOME%\perl\lib" -I"%ORA_HOME%\perl\site\lib" goto DBI :DBI if not "%RDA_NO_DBD_ORACLE%"=="" goto :EXEC "%PERL_EXE%" %PERL_INC% -e "use DBI; use DBD::Oracle;" >NUL 2>NUL if NOT ERRORLEVEL 1 goto EXEC set RDA_NO_DBD_ORACLE=1 :EXEC set RDA_NO_PAUSE=1 "%PERL_EXE%" %PERL_INC% -T "%RDA_DIR%\rda.pl" %* :END endlocal if not "%1"=="" goto EXIT pause :EXIT if %ERRORLEVEL% == 0 exit /B 0 cmd /C exit %ERRORLEVEL%