2012-01-30 41 views
0

好使用Windows腳本宿主對象模型的SQLPlus腳本位置,傳遞VBA

所以我HAZ很多由我組織一個團隊產生這就需要隨後通過的SQLPlus

基本上處理腳本我們/我用腳本位置@Z獲取大量電子郵件:/aFolder/aScript.sql;

然後,我們必須通過打開SQLPlus並粘貼文件位置「@Z:/aFolder/aScript.sql;」來單獨處理它們

我一直在尋找到一種方式通過C#或VBA

我認爲通過VBA Windows腳本宿主對象模型的選擇是一個很好的

實例自動完成:

Option Explicit 

Sub SQLPlus(strFilePath) 

    Dim WShell As New WshShell 
    WShell.Run "sqlplus username/[email protected] " & strFilePath 

End Sub 

Sub test() 

    Call SQLPlus("@Z:/aFolder/aScript.sql;") 

End Sub 

唯一的問題是,我從那裏傳遞最後一個文件位置時出現錯誤:「SP2-0310:無法打開文件位置」Z:/aFolder/aScript.sql;「

我錯過了一個特殊的角色或從這個東西?

我將@符號傳入字符串,但它在命令行中不能識別?

任何輸入非常感謝,謝謝。

回答

1

OK,這是目前解決[在時尚]

我在做什麼是傳遞文件位置參數.bat文件

所以,我有我的.bat文件OracleSQL蝙蝠包含此代碼:

@echo off 
sqlplus username/[email protected] @%1 
exit; 

現在我可以將文件參數掏出到批處理文件:

Dim strBatchName As String 

strBatchName = "C:\location\of\bat\OracleSQL.bat Z:/aFolder/aScript.sql" 
Shell strBatchName 

完成:)

0

試過引用路徑嗎?

WShell.Run "sqlplus username/[email protected] """ & _ 
      strFilePath & """" 
+0

對不起,我忘了,但沒有成功 – spences10 2012-01-31 09:00:59

+0

我看到你的其他問題,但你沒有給什麼「沒有成功」實際上意味着太多細節更何況我厭倦了這種方法了。 ... – 2012-01-31 15:49:04

+0

嗨蒂姆,沒有成功意味着我得到了和以前一樣的錯誤。 所以我得到的錯誤:「SP2-0310:無法打開文件位置‘Z:/aFolder/aScript.sql;’ 我發現,我可以通過一個bat文件 sqlplus的用戶名/密碼做@ serverlocation.com @「Z:\ aFolder \ aScript.sql」 EXIT; – spences10 2012-02-01 11:30:53