单位服务器是10g版本
我用with as 为什么差不多数据呢?
比如:
with v as
(select * from t)
select * from v以上语句应该同select * from t是等效的吧,但是却查不到数据。
我google了下,with as 是sql-99标准的,oracle 从9i r2开始就支持with as了
请大牛指点

解决方案 »

  1.   

    t里面本来没数据?或者你插入了数据但是没commit又用另一个session去查了?
      

  2.   

    t里面肯定有数据的啊,而且很庞大的一张表
    select * from t就能查到
      

  3.   

    语句没有问题,主要考虑表中是否有数据
    是否 commit 
      

  4.   

    select * from t 有数据的话
    那我也不知道什么情况了
      

  5.   

    你是在什么环境下执行该语句的
    语句后面怎么没加分号呢下面是我在SQL*PLUS里执行的 参考一下
    SQL> select * from t1;       ID1        ID2
    ---------- ----------
             1          1
             1          2
             2          2
             3          1
             3          2SQL> with v as
      2  (select * from t1)
      3  select * from v
      4  ;       ID1        ID2
    ---------- ----------
             1          1
             1          2
             2          2
             3          1
             3          2SQL>
      

  6.   

    我找到原因了,服务器虽然是10g,但是客户端是8i的,升级到9i及以上就可以了另外有个问题是: 在PL/SQL中,with子句中用串联临时视图可以的,但是到了ADO中就不行了。with子句本身支不支持串联视图的?还是PL/SQL对串联视图做了转换,或者ADO功能支持不完善?PS:我所谓的串联视图是指
    with v1 as
    (select ...)
    v2 AS
    (select ... from v1)
    select ...
      

  7.   

    好像不行吧 我刚试了下不可以
    SQL> select * from t1;       ID1        ID2
    ---------- ----------
             1          1
             1          2
             2          2
             3          1
             3          2SQL> with v1 as
      2  (select id1 from t1)
      3  select * from v1;       ID1
    ----------
             1
             1
             2
             3
             3SQL> with v1 as
      2  (select id1 from t1)
      3  v2 as
      4  (select id2 from t1)
      5  select * from v1,v2;
    v2 as
    *
    ERROR at line 3:
    ORA-00928: missing SELECT keyword
      

  8.   

    在pl/sql developer真的可以,那估计是它做了转换
      

  9.   

    with v1 as
      2  (select id1 from t1),
      3  v2 as
      4  (select id2 from t1)
      5  select * from v1,v2;