Dim strSQL,compCodeSQL,path
set oraPara=wscript.createobject("wscript.shell")
On Error Resume Next
'当前路径
path = createobject("Scripting.FileSystemObject").GetFolder(".").Path
'文件处理对象
Set poFso = CreateObject("Scripting.FileSystemObject")
'数据库连接
Set con = CreateObject("ADODB.Connection")
'DB连接参数
'Data Source : tnsnames.ora 配置service对应的监听名 ROOT
'ROOT =
' (DESCRIPTION =
' (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
' (CONNECT_DATA =
' (SERVER = DEDICATED)
' (SERVICE_NAME = root)
' )
' )
con.connectionstring = "Provider=OraOLEDB.Oracle.1;Password=xxx;User ID=xxx;Data Source=xxx;Persist Security Info=True"
compCodeSQL = " "
'GET_SQL是存储过程名 没有直接定义sql是为了省去vb转义的麻烦 用plsql的字符串模板
' SELECT q'| 中间可以直接赋值大段的sql文 |' FROM DUAL
compCodeSQL = compCodeSQL & " SELECT GET_SQL FROM DUAL" 'column index 0,1'
'DB连接状态
con.open
If con.State = 0 Then
msgbox("DB连接成功")
On Error GoTo 0
else
msgbox("DB连接失败")
end if
'当前时间
Dim sysdate
Dim mm
Dim dd
Dim csvTitle
Dim psBuff
mm = Month(Now)
dd = Day(Now)
if CInt(mm) < 10 then
mm = "0" & CStr(mm)
end if
if CInt(dd) < 10 then
dd = "0" & CStr(dd)
end if
sysdate = Year(Now) & mm & dd
'SQL执行
Set strVal = con.execute(compCodeSQL)
'要执行的sql
strSQL = strVal.Fields(0)
'msgbox(strSQL)
'输出结果用于赋值
Set csvVal = con.execute(strSQL)
If isObject(pvehTxtFile) Then
pvehTxtFile.close
Set pvehTxtFile = Nothing
End If
If isObject(pvehTxtFileBackUp) Then
pvehTxtFileBackUp.close
Set pvehTxtFileBackUp = Nothing
End If
'CSV文件输出路径定义
Set pvehTxtFile = poFso.CreateTextFile(path & "\CSV" & sysdate & ".csv",TRUE)
'CSV文件列名定义
csvTitle = ""
csvTitle = " ISR名 "
For i = 1 To 19 Step 1
csvTitle = csvTitle & " ISR名 "& i & ","
Next
pvehTxtFile.WriteLine csvTitle
pvehTxtFileBackUp.WriteLine csvTitle
'CSV赋值
If csvVal.EOF = false Then
csvVal.MoveFirst
Do Until csvVal.EOF
psBuff = ""
Set fld = Nothing
Set fld = csvVal.Fields
For i = 0 To fld.Count - 1 Step 1
psBuff = psBuff & csvVal.Fields(i) & ","
Next
pvehTxtFile.WriteLine psBuff
pvehTxtFileBackUp.WriteLine psBuff
csvVal.MoveNext
Loop
end if
msgbox("end")
msgbox(path)