我有一个很长的 SQL 语句,本质上是:
with a as (select * from t1),
b as (select * from a, t2 where a.id=t2.id)
select * from b
该语句在我的 TOAD 应用程序中执行得非常好。但是,当我尝试将上述内容填充到字符串变量中并使用以下命令在 ASP 中运行它时:
set rs = objConn.execute(strSQL)
我收到以下错误:
Microsoft OLE DB Provider for ODBC Drivers error '80040e37'
[Microsoft][ODBC driver for Oracle][Oracle]ORA-00942: table or view does not exist
/Application/xxxxx/yyyyy/myfilename.asp,第 168 行
第 168 行是 set rs = objConn.execute(strSQL) 行。
我已经使用这些相同的表来运行其他几个查询,并使用 set rs = objConn.execute(strSQL) 行将它们在线发布,没有任何问题。我唯一能确定的与此 SQL 查询不同的是子查询分解。
我尝试将整个查询包装在它自己的选择语句中,例如:
select * from (with a as blah blah... entire original query)
但这仍然会引发相同的错误。我可以不使用 set
rs = objConn.execute(strSQL)
结合子查询分解?不支持吗?或者有什么解决办法?或者它可能完全是别的东西?
谢谢。