【发布时间】:2017-03-29 16:38:27
【问题描述】:
Excel 版本:2013
SQL Oracle 与 ADODB
我对 ADODB 和 SQL 比较陌生。我有以下代码:
objMyCmd.CommandText = "begin " & Chr(10) & _
"scheme1.function1(to_date('2017.01.01','YYYY-MM-DD'), to_date('2017.03.01','YYYY-MM-DD'),'ALEX'); " & Chr(10) & "commit; " & Chr(10) & "end; "
objMyCmd.CommandType = adCmdText
objMyCmd.Execute
objMyCmd.CommandText = "SELECT * from table1"
objMyCmd.CommandType = adCmdText
objMyCmd.Execute
SQL 解释器中的代码如下所示:
begin
scheme1.function1(to_date('2017.01.01','YYYY-MM-DD'),to_date('2017.03.01','YYYY-MM-DD'),'ALEX');
commit;
end;
SELECT * from table1
当运行第二个objMyCmd.Execute 我得到:
[Oracle][ODBC][Ora]ORA-00903: invalid table name
我猜这个问题来自于将第一个和第二个过程组合在一个 objMyCmd.CommandText 中。
请帮我解决这个问题,让 VBA 脚本正常工作。
【问题讨论】:
-
试试
objMyCmd.CommandText = "{begin ...end;}"或objMyCmd.CommandText = "{call scheme1.function1...} -
您的日期字符串和日期格式字符串看起来不匹配。 table1是存储过程创建的吗?
标签: sql excel oracle vba adodb