在Excel VBA中执行PL / SQL

时间:2014-01-20 11:06:06

标签: oracle vba plsql

我正在使用如下的PL / SQL程序:

create or replace procedure forecast_real_dates_procedure
IS
BEGIN
DELETE FROM FORECAST_REAL_DATES_TABLE;
insert into FORECAST_REAL_DATES_TABLE select * from FORECAST_REAL_DATES_VIEW;
END;
/

我想在excel vba(即)中执行此过程,在vba中运行语句execute forecast_real_dates_procedure。我已经完成了从vba和所有这些东西连接到oracle。但是,只是与执行此操作的命令混淆。任何人都可以帮助我。

感谢

2 个答案:

答案 0 :(得分:0)

试试这个(未经测试):

Dim con As New ADODB.Connection
Dim cmd As New ADODB.Command

con.provider = "OraOLEDB.Oracle"
con.CursorLocation = adUseClient
con.Open "PLSQLRSet=0;Data Source=<YOUR_DATABASE>" , "<USER>", "<Password>"
Set cmd.ActiveConnection = con

cmd.CommandType = adCmdStoredProc
cmd.CommandText = "forecast_real_dates_procedure"
cmd.Execute
con.Close

您必须在以下位置添加对VBA宏的引用:工具 - &gt;参考文献 - &gt;启用“Microsoft ActiveX数据对象2.?库”

答案 1 :(得分:0)

我找到了解决方案。

只需执行以下代码

Set cmd = New ADODB.Command
With cmd
 .ActiveConnection = cn
 .CommandType = adCmdStoredProc
 .CommandText = "forecast_real_dates_procedure"
 .Execute , , adExecuteNoRecords
End With