Передача местоположения сценария SQLPlus с использованием объектной модели хоста сценария Windows в VBA - PullRequest
0 голосов
/ 30 января 2012

Хорошо,

Так что я рискую множеством сценариев, сгенерированных командой в моей организации, которые затем необходимо обработать с помощью SQLPlus

В основном мы / я получаем множество писем с указанием местоположения скрипта @Z: /aFolder/aScript.sql;

Затем мы должны обработать их по отдельности, открыв SQLPlus и вставив туда местоположение файла "@Z: /aFolder/aScript.sql;"

Я искал способ автоматизировать это с помощью C # или VBA

Я думаю, что вариант объектной модели хоста сценариев Windows через VBA является хорошим

Пример:

Option Explicit 

Sub SQLPlus(strFilePath) 

    Dim WShell As New WshShell 
    WShell.Run "sqlplus username/pass...@serverlocation.com " & strFilePath 

End Sub 

Sub test() 

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

End Sub 

Единственная проблема заключается в том, что я получаю сообщение об ошибке при передаче этого последнего местоположения файла туда: "SP2-0310: невозможно открыть местоположение файла" Z: /aFolder/aScript.sql; "

Я пропускаю специальный символ или что-то из этого?

Я передаю знак @ в строку, но он не распознается в командной строке ??

Любой вклад с благодарностью, спасибо.

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Хорошо, теперь это решено [в моде]

Я передаю параметр местоположения файла в файл .bat

Итак, у меня есть файл .bat OracleSQL.bat, который содержит этот код:

@echo off 
sqlplus username/password@serverlocation.com @%1 
exit; 

Теперь я могу выложить в командный файл с параметром файла:

Dim strBatchName As String 

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

Готово :)

0 голосов
/ 30 января 2012

Пробовал цитировать путь?

WShell.Run "sqlplus username/pass...@serverlocation.com """ & _
             strFilePath & """"  
...