Why can't I do a “with x as (…)” with ADODB and Oracle?

后端 未结 2 1145
一生所求
一生所求 2020-12-10 06:38

I fail to execute an SQL query with a with clause via ADODB and Oracle.

That is, the following snippet works:

Dim cn As ADODB.connection
Set         


        
相关标签:
2条回答
  • 2020-12-10 07:04

    Ok, it really seems as though ADODB expects a query statement to actually start with select. Therefore, a work around for the problem might be to enclose the statement in a select * from ( .... ) like so:

    Dim sql As String
    sql = "with w as (select 'foo' x from dual) select x from w"
    
    ' enclose the statement:
    sql = "select * from (" & sql & ")"
    
    rs.Open sql, cn
    
    0 讨论(0)
  • 2020-12-10 07:05

    Above method did not work for me.

    Adding ";" prior to WITH keyword resolved the issue.

    Dim sql As String sql = ";with w as (select 'foo' x from dual) select x from w"

    rs.Open sql, cn

    0 讨论(0)
提交回复
热议问题