vbs连接Oracle导出CSV数据

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)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值