文章詳情頁
用Windows腳本宿主自動化Oracle工具
瀏覽:111日期:2023-11-13 15:10:27
隨著新版Windows 操作系統的發布,命令提示符距離用戶越來越遙遠了。但是 Oracle 所附帶的多數主要服務器工具依然是基于命令行的程序,所以完成簡單的任務變得更加困難了。 然而,新版的 Windows 提供一個叫做 Windows 腳本宿主的工具,該工具可以通過執行腳本(JScript 或者 Visual Basic Script)來自動化這些任務。一些其它的數據庫環境依靠這些腳本完成很多在 Windows 環境下 Oracle 用戶不能完成的任務。 有很多資源教我們使用 Windows 腳本宿主的方法。在本文中我將局限于一個特定的例子:自動化 Oracle 導入(import)工具從而能夠導入多個文件并提供命令行的語法。 為了執行導入程序,我需要創建一個名為“WScript.Shell”的 COM 對象。對于執行腳本所需要的每個命令行參數,我簡單地使用給定的參數構造出命令行并使用 WScript.Shell 的 Run方法來執行。 ' VBScript (dropper.vbs)Set WshShell = WScript.CreateObject('WScript.Shell')For Each arg in WScript.Arguments' Note 'imp' needs single quotes around filenames with spacesCmdString = 'imp userid=scott/tiger file='' & arg & '' rows=y ignore=y'ReturnCode = WshShell.Run(CmdString,1,True)Next// Jscript (dropper.js)var WshShell = WScript.CreateObject('Wscript.Shell');for (i=0;i{// Note 'imp' needs single quotes around filenames with spacesvar arg = WScript.Arguments.Item(i);var CmdString = 'imp userid=scott/tiger file='' + arg + '' rows=y ignore=y';var ReturnCode = WshShell.Run(CmdString,1,true);} 雖然這段腳本外表看起來只是簡單地改進功能——即在沒有輸入用戶名、口令或者命令行參數的情況下列出多個文件——但其實提供了更多的功能。在 Windows 中,當你選擇一個對象并將其拖放到一些可執行程序(像 VBScript 或者 JScript)之上時,文件就會以命令行參數所選擇的文件名執行。因此你可以選擇一個 Oracle 導出文件然后使用鼠標將其拖入到腳本上,腳本就會自動地對這些文件運行“imp”。也就是說腳本可以允當一個支持拖放的能夠裝數據導入到數據庫的小程序。這樣對于那些習慣于 Windows 環境多過命令提示符的用戶來說這個方式要友好地多。 你還可以把這個腳本擴展,比如說檢查文件的擴展名,對于“.dmp”文件執行“imp”,而對于“.sql”文件使用相同的用戶賬號執行“sqlplus”。你可能還想要編寫腳本訪問數據庫來自動地將文件裝載到 Blob 或者 XML 庫,或者為了保密隱藏用戶名和口令。最后,你可以修改 Run命令來隱藏控制臺窗口,防止其在運行的時候跳出,或者說并行地運行導入(import)而不是每次導入一個文件。
排行榜
