VBS连接远程Oracle

原文链接:http://hi.baidu.com/coo_boi/item/5a2e1860ded285136995e6a7

连接方式还是用的ADO,驱动是MSDAORA。

使用oracle前,oracle client必须要装的,而且tnsnames.ora也要配置的。

'__code by coo_boi
'__vbs & oracle
Set cnn=CreateObject("adodb.connection")
Set rds=CreateObject("adodb.recordset")
Set cmd=CreateObject("adodb.command")
       
cnnstr="Provider=MSDAORA.1;User ID=eastcom;" & _
    "Password=EastcoM!$;" & _
    "Data Source=MART11G;" & _
    "Persist Security info=False"
cnn.Open cnnstr
'===================================================
'regular select
Set rds=cnn.Execute("select * from v$version")
Do Until rds.EOF Or rds.EOF
    version= version & rds.Fields(0) & vbLf
    rds.MoveNext
Loop
MsgBox version,,"select * from v$version"
'===================================================
'insert/delete/update
'ra: RecordAffected
'   execute DML without needing to commit,
'   and it only can execute one dml sentence every execution period.
cnn.Execute "insert into temp_column values('4567')", ra
MsgBox ra
cnn.Execute "delete temp_column where rt='1234'", ra
MsgBox ra
cnn.Execute "update temp_column set rt='xxx' where rt='4567'", ra
MsgBox ra
'===================================================
'execute procedure
cmd.ActiveConnection=cnn
cmd.CommandType=4
cmd.CommandText="proc_getversion"
Set para1=cmd.CreateParameter("v1",200,1,1000,"hello,this is coo_boi")
Set para2=cmd.CreateParameter("v2",200,2,1000,"")
cmd.Parameters.Append para1
cmd.Parameters.Append para2
cmd.Execute
MsgBox cmd.Parameters(1).Value,,"execute procedure"
 
cnn.Close

范例中的存储过程:

create or replace procedure
       proc_getversion(v1 in varchar,v2 out varchar)
as
begin
  v2 := v1;
  for t in (select * from v$version)
    loop
      v2 := v2 || chr(13) || t.banner;
    end loop;
end;

返回结果:

原文地址:https://www.cnblogs.com/lichmama/p/4142693.html