VB脚本运行查询

时间:2010-12-09 08:03:01

标签: oracle vbscript

我正在尝试通过VB脚本连接命令提示符,并进一步与Oracle环境连接以执行Oracle发现者的一些报告。 但问题是只有这个VB脚本。

第2行:用于建立连接。 第7行:获取当前的REQUEST_ID。 第16行:XXDIS_EXPORT_CMD_V是一个视图,cmd是一个列。它为相应的REQUEST_ID选择一个这样的值。 / CONNECT DISCADMIN:“FAI Financials Intelligence”/ discbi @ deverp / OPENDB“1 Scheduling”/ SHEET“Sheet_1”/ EXPORT HTML o27673334.out / LOGFILE l27673334.log / BATCH

最后我想用VBScript执行这个cmd。

出现错误:

  

“第32行tkgoShell不是   公认的“

这是我的代码:

' Process job
    Set objADO =CreateObject("ADODB.Connection")
    objADO.Open "Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=deverp; UID=apps; PWD=apps11i;"
    MsgBox "Connection Established to Server.", vbExclamation + vbOKOnly, "System"
    Do While True
    ' Check if there is a job to process
    Set moRS=objADO.execute("SELECT apps.xxdis_schedule_pkg.start_job REQUEST_ID FROM dual")
    moRS.MoveFirst
    msRequest = moRS("REQUEST_ID")
    'MsgBox msRequest,msRequest
    ' If no jobs then exit
    ' If msRequest = "0" Then
    Exit Do
    ' End If
    loop
    Set moRS=objADO.execute("SELECT cmd EXPORT_CMD FROM apps.xxdis_export_cmd_v " & _
    "WHERE request_id = " & msRequest)
    MsgBox msRequest,msRequest
    moRS.MoveFirst
    msExpCmd = moRS("EXPORT_CMD")
    ' write command into a temporary file
    msCmdFile = "r" & msRequest & ".cmd"
    dim moOutputStream,filesys,msCommand
    Set filesys = CreateObject("Scripting.FileSystemObject")
    Set moOutputStream = filesys.CreateTextFile(msCmdFile, True)
    ' Substitute $SAMBA$ and $TNS$ locally configured variables
    moOutputStream.Write Replace(Replace(msCmd, "$SAMBA$", gsOutDir),_
    "$TNS$", gsInstance) & vbCRLF
    moOutputStream.Close
    ' Call Discoverer to process the command
    msCommand = gsBinDir & gsDiscoExe & " /EUL " & gsEUL & " /CMDFILE " & msCmdFile
    Call tkgoShell.Run (msCommand, 1, true)

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的代码,我无法在您实际创建tkgoShell的任何地方看到。

尝试在最后一行之前插入以下两行:

Dim tkgoShell
Set tkgoShell = WScript.CreateObject ("WScript.Shell")

有关Shell.Run的详细信息,请参阅此处。