【问题标题】:Multiple procedures in Oracle SQL Excel VBAOracle SQL Excel VBA 中的多个过程
【发布时间】: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


【解决方案1】:

此表在您的架构中吗? 如果没有 - 是否有公共同义词? 试试 schema.table1 也许没有公开的同义词。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    相关资源
    最近更新 更多