我正在尝试通过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)
答案 0 :(得分:0)
如果我正确理解您的代码,我无法在您实际创建tkgoShell
的任何地方看到。
尝试在最后一行之前插入以下两行:
Dim tkgoShell
Set tkgoShell = WScript.CreateObject ("WScript.Shell")
有关Shell.Run的详细信息,请参阅此处。