0

行,

所以我有很多脚本是由我的组织中的一个团队生成的,然后需要通过 SQLPlus 处理

基本上,我们/我会收到大量带有脚本位置 @Z:/aFolder/aScript.sql 的电子邮件;

然后,我们必须通过打开 SQLPlus 并将文件位置粘贴到“@Z:/aFolder/aScript.sql;”中来单独处理它们。

我一直在寻找一种通过 c# 或 VBA 实现自动化的方法

我认为通过 VBA 的 Windows Script Host Object Model 选项是一个不错的选择

例子:

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;”

我是否错过了一个特殊字符或其他什么?

我将@符号传递到字符串中,但在命令行上无法识别??

非常感谢任何输入,谢谢。

4

2 回答 2

1

好的,现在解决了[以某种方式]

我正在做的是将文件位置参数传递给 .bat 文件

所以我有我的 .bat 文件 OracleSQL.bat ,其中包含以下代码:

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

我现在可以使用 file 参数输出批处理文件:

Dim strBatchName As String 

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

完毕 :)

于 2012-02-02T11:39:12.063 回答
0

尝试引用路径?

WShell.Run "sqlplus username/pass...@serverlocation.com """ & _
             strFilePath & """"  
于 2012-01-30T19:10:38.277 回答