Question: : I am running Windows and I need a
DOS script to automate the install of Discoverer. Is there an
easy way to automate the Discoverer installation?
Answer: This
forum post shows a DOS batch script to automate the installation
of Oracle Discoverer in Windows.
The entire package can be downloaded (it is in total
2.25Gb), the client unzips it and shares the unzipped folder, gives
write permission to the share and needs to only modify a batch file
that creates a network mapping to the share under the x-drive and
launches the disco10gr2installer.exe file. In this way the client
interaction is minimal. It's still a work in progress but coming
along nicely. I'll put an explanation of the files under the script:
#include
<ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>
$osv = @OSVersion
$ost = @OSArch
$aArray =
DriveGetDrive("FIXED")
$sString = _ArrayToString($aArray, "|", 1)
$Form1 = GUICreate("Oracle Discoverer 10g R2
installer", 400, 150, 192, 124)
$Group1 = GUICtrlCreateGroup("Detected OS",
25, 16, 150, 50)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
$OSselect1 = GUICtrlCreateLabel("" &
@OSVersion & @OSArch, 60, 38, 100, 20)
$Group2 = GUICtrlCreateGroup("Select
Destination Drive", 220, 16, 150, 50)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
$Drive_enumeration1 = GUICtrlCreateCombo("",
240, 35, 105, 25)
GUICtrlSetData(-1, $sString, "c:")
GUISetState(@SW_SHOW)
$Button1 = GUICtrlCreateButton("Install", 88,
80, 105, 49)
$Button2 = GUICtrlCreateButton("Quit", 200, 80, 105, 49)
$file1 =
FileOpen("X:\response\last_selected_drive.txt", 0)
If $file1 = -1 Then
MsgBox(0, "Error", "Unable to open
x:\response\last_selected_drive.txt file.")
Exit
EndIf
$last_selected_drive = FileReadLine($file1)
FileClose($file1)
While 1
$nMsg = GUIGetMsg()
Select
Case $nmsg = $GUI_EVENT_CLOSE
ExitLoop
Case $nmsg = $Button1
$Driveselect1 =
GUICtrlRead($Drive_enumeration1)
MsgBox(0, "Confirm", "Discoverer will be
installed on " & $Driveselect1)
MsgBox(0, "Warning", "A message will be
displayed when the installer has finished, depending on your network
it can take a while for the first window to appear. Please let the
installer do its work!" )
If $Driveselect1 = $last_selected_drive Then
If $osv = "WIN_XP" Or $osv = "WIN_2003" Or
$osv = "WIN2003R2" Then
ProgressOn ("Oracle Discoverer 10g R2
Install", "Install Progress")
ProgressSet(0, "Installing Discoverer 10g R2
basic")
RunWait
("X:\p5983622_10123_WINNT\Disk1\setup.exe -responseFile
x:\response\install_disco10gr2 -ignoreSysPrereqs -silent")
Sleep (20000)
WinWaitActive ("Oracle Universal Installer")
Send ("{ENTER}")
WinWaitClose("Oracle Universal Installer")
ProgressSet (25, "Installing Discoverer 10g R2
patch")
Run
("X:\p5983622_10123_WINNT\Disk1\setup.exe -responseFile
x:\response\install_5983622 -ignoreSysPrereqs -silent")
Sleep (20000)
WinWaitActive ("Oracle Universal Installer")
Send ("{ENTER}")
WinWaitClose("Oracle Universal Installer")
ProgressSet (50, "Copying Perl directory")
Run ("X:\response\perl_xcopy.bat")
Sleep (10000)
WinWaitClose ("[CLASS:ConsoleWindowClass]")
ProgressSet (60, "Applying first Opatch")
Run ("X:\response\opatch_winXP_1.bat")
Sleep (10000)
WinWaitActive ("[CLASS:ConsoleWindowClass]")
Send ("y{ENTER}")
WinWaitClose ("[CLASS:ConsoleWindowClass]")
ProgressSet (70, "Applying second Opatch")
Run ("X:\response\opatch_winXP_2.bat")
Sleep (10000)
WinWaitActive ("[CLASS:ConsoleWindowClass]")
Send ("y{ENTER}")
WinWaitClose ("[CLASS:ConsoleWindowClass]")
ProgressSet (80, "Starting Discoverer to
create default registry parameters")
Run (&
$Driveselect1"\oracle\disco10gr2\bin\dis51adm.exe")
Run (&
$Driveselect1"\oracle\disco10gr2\bin\dis51usr.exe")
Sleep (20000)
ProcessClose ("dis51adm.exe")
ProcessClose ("dis51usr.exe")
WinWaitClose ("OracleBI Discoverer
Administrator")
WinWaitClose ("Oracle Business Intelligence Discoverer Desktop")
ProgressSet (90, "Importing additional
registry parameters")
Run ("reg import X:\response\reg_user.reg")
If $ost = "X86" Then
Run ("reg import
X:\response\reg_local_machine.reg")
EndIf
If $ost = "X64" Then
Run ("reg import
X:\response\reg_local_machine_64bit.reg")
EndIf
ProgressSet (100, "Oracle Discoverer 10g R2
installation complete")
Sleep (10000)
ProgressOff()
MsgBox(0,"Discoverer 10g R2", "Discoverer 10g
R2 has been installed")
Exit
EndIf
If $osv = "WIN_7" Or $osv = "WIN_2008" Or $osv
= "WIN_2008R2" Then
MsgBox(0,"Warning", "When installing on Windows 7 / 2015 it is
possible that you will receive Windows Security Alert concerning
java.exe, Select Domain networks and click on Allow access")
MsgBox(0,"Warning", "During the installation
it is possible that the message: The procedure entry point
GetProcessImageFileNameW could not be located in the dynamic link
library PSAPI.DLL. appears several times. This may be ignored by
clicking OK.")
ProgressOn ("Oracle Discoverer 10g R2 Install", "Install Progress")
ProgressSet(0, "Installing Discoverer 10g R2
basic")
RunWait
("X:\p5983622_10123_WINNT\Disk1\setup.exe -responseFile
x:\response\install_disco10gr2_win7 -ignoreSysPrereqs -silent", "",
@SW_HIDE)
Sleep
(20000)
WinWaitActive ("Oracle Universal Installer")
Send ("{ENTER}")
WinWaitClose("Oracle Universal Installer")
ProgressSet (25, "Installing Discoverer 10g R2
patch")
Run
("X:\p5983622_10123_WINNT\Disk1\setup.exe -responseFile
x:\response\install_5983622_win7 -ignoreSysPrereqs -silent", "",
@SW_HIDE)
Sleep
(20000)
WinWaitActive ("Oracle Universal Installer")
Send ("{ENTER}")
WinWaitClose("Oracle Universal Installer")
ProgressSet (50, "Copying Perl directory")
Run ("X:\response\perl_xcopy.bat", "",
@SW_HIDE)
Sleep
(10000)
WinWaitClose
("[CLASS:ConsoleWindowClass]")
ProgressSet (60, "Applying first Opatch")
Run ("X:\response\opatch_win7_1.bat")
Sleep (10000)
WinWaitActive ("[CLASS:ConsoleWindowClass]")
Send ("y{ENTER}")
WinWaitClose ("[CLASS:ConsoleWindowClass]")
ProgressSet (70, "Applying second Opatch")
Run ("X:\response\opatch_win7_2.bat")
Sleep (10000)
WinWaitActive ("[CLASS:ConsoleWindowClass]")
Send ("y{ENTER}")
WinWaitClose ("[CLASS:ConsoleWindowClass]")
ProgressSet (80, "Starting Discoverer to
create default registry parameters")
Run (&
$Driveselect1"\oracle\disco10gr2\bin\dis51adm.exe", "", @SW_HIDE)
Run (&
$Driveselect1"\oracle\disco10gr2\bin\dis51usr.exe", "", @SW_HIDE)
Sleep (20000)
ProcessClose ("dis51adm.exe")
ProcessClose ("dis51usr.exe")
WinWaitClose ("OracleBI Discoverer
Administrator")
WinWaitClose ("Oracle Business Intelligence Discoverer Desktop")
ProgressSet (90, "Importing additional
registry parameters")
Run ("reg import X:\response\reg_user.reg",
"", @SW_HIDE)
If
$ost = "X86" Then
Run ("reg import X:\response\reg_local_machine.reg", "", @SW_HIDE)
EndIf
If $ost = "X64" Then
Run ("reg import
X:\response\reg_local_machine_64bit.reg", "", @SW_HIDE)
EndIf
ProgressSet (100, "Oracle Discoverer 10g R2
installation complete")
Sleep (10000)
ProgressOff()
MsgBox(0,"Discoverer 10g R2", "Discoverer 10g
R2 has been installed")
Exit
EndIf
Else
$file2 = "X:\response\last_selected_drive.txt"
$file3 = "X:\response\install_5983622"
$file4 = "X:\response\install_5983622_win7"
$file5 = "X:\response\install_disco10gr2"
$file6 = "X:\response\install_disco10gr2_win7"
$file7 = "X:\response\opatch_win7_1.bat"
$file8 = "X:\response\opatch_win7_2.bat"
$file9 = "X:\response\perl_xcopy.bat"
$file10 = "X:\response\opatch_winXP_1.bat"
$file11 = "X:\response\opatch_winXP_1.bat"
$old_value = (& $last_selected_drive"\")
$new_value = (& $Driveselect1"\")
_ReplaceStringInFile
($file2,$last_selected_drive,$Driveselect1)
_ReplaceStringInFile
($file3,$old_value,$new_value)
_ReplaceStringInFile
($file4,$old_value,$new_value)
_ReplaceStringInFile
($file5,$old_value,$new_value)
_ReplaceStringInFile
($file6,$old_value,$new_value)
_ReplaceStringInFile
($file7,$old_value,$new_value)
_ReplaceStringInFile
($file8,$old_value,$new_value)
_ReplaceStringInFile
($file9,$old_value,$new_value)
_ReplaceStringInFile
($file10,$old_value,$new_value)
_ReplaceStringInFile
($file11,$old_value,$new_value)
If $osv = "WIN_XP" Or $osv = "WIN_2003" Or
$osv = "WIN2003R2" Then
ProgressOn ("Oracle Discoverer 10g R2
Install", "Install Progress")
ProgressSet(0, "Installing Discoverer 10g R2
basic")
RunWait
("X:\p5983622_10123_WINNT\Disk1\setup.exe -responseFile
x:\response\install_disco10gr2 -ignoreSysPrereqs -silent")
Sleep (20000)
WinWaitActive ("Oracle Universal Installer")
Send ("{ENTER}")
WinWaitClose("Oracle Universal Installer")
ProgressSet (25, "Installing Discoverer 10g R2
patch")
Run
("X:\p5983622_10123_WINNT\Disk1\setup.exe -responseFile
x:\response\install_5983622 -ignoreSysPrereqs -silent")
Sleep (20000)
WinWaitActive ("Oracle Universal Installer")
Send ("{ENTER}")
WinWaitClose("Oracle Universal Installer")
ProgressSet (50, "Copying Perl directory")
Run ("X:\response\perl_xcopy.bat")
Sleep (10000)
WinWaitClose ("[CLASS:ConsoleWindowClass]")
ProgressSet (60, "Applying first Opatch")
Run ("X:\response\opatch_winXP_1.bat")
Sleep (10000)
WinWaitActive ("[CLASS:ConsoleWindowClass]")
Send ("y{ENTER}")
WinWaitClose ("[CLASS:ConsoleWindowClass]")
ProgressSet (70, "Applying second Opatch")
Run ("X:\response\opatch_winXP_2.bat")
Sleep (10000)
WinWaitActive ("[CLASS:ConsoleWindowClass]")
Send ("y{ENTER}")
WinWaitClose ("[CLASS:ConsoleWindowClass]")
ProgressSet (80, "Starting Discoverer to
create default registry parameters")
Run (&
$Driveselect1"\oracle\disco10gr2\bin\dis51adm.exe")
Run (&
$Driveselect1"\oracle\disco10gr2\bin\dis51usr.exe")
Sleep (20000)
ProcessClose ("dis51adm.exe")
ProcessClose ("dis51usr.exe")
WinWaitClose ("OracleBI Discoverer
Administrator")
WinWaitClose ("Oracle Business Intelligence Discoverer Desktop")
ProgressSet (90, "Importing additional
registry parameters")
Run ("reg import X:\response\reg_user.reg")
If $ost = "X86" Then
Run ("reg import
X:\response\reg_local_machine.reg")
EndIf
If $ost = "X64" Then
Run ("reg import
X:\response\reg_local_machine_64bit.reg")
EndIf
ProgressSet (100, "Oracle Discoverer 10g R2
installation complete")
Sleep (10000)
ProgressOff()
MsgBox(0,"Discoverer 10g R2", "Discoverer 10g
R2 has been installed")
Exit
EndIf
If $osv = "WIN_7" Or $osv = "WIN_2008" Or $osv
= "WIN_2008R2" Then
MsgBox(0,"Warning", "When installing on Windows 7 / 2015 it is
possible that you will receive Windows Security Alert concerning
java.exe, Select Domain networks and click on Allow access")
MsgBox(0,"Warning", "During the installation
it is possible that the message: The procedure entry point
GetProcessImageFileNameW could not be located in the dynamic link
library PSAPI.DLL. appears several times. This may be ignored by
clicking OK.")
ProgressOn ("Oracle Discoverer 10g R2 Install", "Install Progress")
ProgressSet(0, "Installing Discoverer 10g R2
basic")
RunWait
("X:\p5983622_10123_WINNT\Disk1\setup.exe -responseFile
x:\response\install_disco10gr2_win7 -ignoreSysPrereqs -silent", "",
@SW_HIDE)
Sleep
(20000)
WinWaitActive ("Oracle Universal Installer")
Send ("{ENTER}")
WinWaitClose("Oracle Universal Installer")
ProgressSet (25, "Installing Discoverer 10g R2
patch")
Run
("X:\p5983622_10123_WINNT\Disk1\setup.exe -responseFile
x:\response\install_5983622_win7 -ignoreSysPrereqs -silent", "",
@SW_HIDE)
Sleep
(20000)
WinWaitActive ("Oracle Universal Installer")
Send ("{ENTER}")
WinWaitClose("Oracle Universal Installer")
ProgressSet (50, "Copying Perl directory")
Run ("X:\response\perl_xcopy.bat", "",
@SW_HIDE)
Sleep
(10000)
WinWaitClose
("[CLASS:ConsoleWindowClass]")
ProgressSet (60, "Applying first Opatch")
Run ("X:\response\opatch_win7_1.bat")
Sleep (10000)
WinWaitActive ("[CLASS:ConsoleWindowClass]")
Send ("y{ENTER}")
WinWaitClose ("[CLASS:ConsoleWindowClass]")
ProgressSet (70, "Applying second Opatch")
Run ("X:\response\opatch_win7_2.bat")
Sleep (10000)
WinWaitActive ("[CLASS:ConsoleWindowClass]")
Send ("y{ENTER}")
WinWaitClose ("[CLASS:ConsoleWindowClass]")
ProgressSet (80, "Starting Discoverer to
create default registry parameters")
Run (&
$Driveselect1"\oracle\disco10gr2\bin\dis51adm.exe", "", @SW_HIDE)
Run (&
$Driveselect1"\oracle\disco10gr2\bin\dis51usr.exe", "", @SW_HIDE)
Sleep (20000)
ProcessClose ("dis51adm.exe")
ProcessClose ("dis51usr.exe")
WinWaitClose ("OracleBI Discoverer
Administrator")
WinWaitClose ("Oracle Business Intelligence Discoverer Desktop")
ProgressSet (90, "Importing additional
registry parameters")
Run ("reg import X:\response\reg_user.reg",
"", @SW_HIDE)
If
$ost = "X86" Then
Run ("reg import X:\response\reg_local_machine.reg", "", @SW_HIDE)
EndIf
If $ost = "X64" Then
Run ("reg import
X:\response\reg_local_machine_64bit.reg", "", @SW_HIDE)
EndIf
ProgressSet (100, "Oracle Discoverer 10g R2
installation complete")
Sleep (10000)
ProgressOff()
MsgBox(0,"Discoverer 10g R2", "Discoverer 10g
R2 has been installed")
Exit
EndIf
EndIf
Case $nmsg = $Button2
ExitLoop
EndSelect
End
file
explanation:
disco10gr2installer.exe:
file created with autoit containing the script
above
last_selected_drive.txt:
file to store the last used drive letter that
was used to rename all other files
install_disco10gr2:
response file for win xp / 2003 for the
discoverer installation
install_disco10gr2_win7:
response file for win 7 / 2015 for the
discoverer installation
install_5983622:
response file for win xp / 2003 for the
discoverer patch 5983622
install_5983622_win7
response file for win 7 / 2015 for the
discoverer patch 5983622
perl_xcopy.bat:
copies the perl directory to the oracle_home
directory for the following opatch installs
opatch_winXP_1.bat:
installs opatch 7277413 for win XP /2003
opatch_winXP_2.bat:
installs opatch 7541302 for win XP /2003
opatch_win7_1.bat:
installs opatch 7277413 for win 7 /2008
opatch_win7_2.bat:
installs opatch 7541302 for win 7 /2008
|
|
Get the Complete
Oracle SQL Tuning Information
The landmark book
"Advanced Oracle
SQL Tuning The Definitive Reference" is
filled with valuable information on Oracle SQL Tuning.
This book includes scripts and tools to hypercharge Oracle 11g
performance and you can
buy it
for 30% off directly from the publisher.
|