1.定义一个测试Procedure,这个Procedure用于给临时表插入一条记录
create sequence pt_debug_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; --1. Create temp table. create table pt_debug_tab (seq INTEGER,text Varchar2(300),datetag Varchar2(30)); --2. Create procedure. create or replace procedure pt_debug(inStr Varchar2) as PRAGMA AUTONOMOUS_TRANSACTION; BEGIN INSERT INTO pt_debug_tab VALUES(pt_debug_sequence.NEXTVAL,inStr,to_char(sysdate,\'hh:mi:ss\')); COMMIT; END;
2.VBA中的代码,参照:VBA - Hello World 样式,在Sheet中插入一个测试按钮,然后在按钮事件中加入下边的Macro代码
Private Sub CommandButton1_Click() Dim rs As Object, com As Object, cn As Object Set cn = CreateObject("ADODB.Connection") cn.Open ("Provider=MSDAORA.1;Password=password;Persist Security Info=True;User ID=user;Data Source=instance_name") \'Update the connectionstring \'Set com = CreateObject("ADODB.Command") Set rs = CreateObject("ADODB.Recordset") Set com = CreateObject("ADODB.Command") Set com.ActiveConnection = cn com.CommandText = "BEGIN pt_debug(\'PTIAN:Sysdate is \'||sysdate); END;" com.CommandType = 1 Set rs = com.Execute MsgBox ("Done!") End Sub
执行后,能够看到pt_debug_tab表插入了一条新的记录。