本帖最后由 zhouxiaojian1985 于 2011-02-21 11:43:18 编辑

解决方案 »

  1.   

    declare
    v_count      NUMBER          := 0; 
    BEGIN   SELECT COUNT (*) 
              INTO v_count 
              FROM A; 
      
      IF v_count = 0 
          THEN 
            INSERT INTO A(ID) 
                SELECT B.ID 
                  FROM B 
                WHERE B.ID = 'XXX' ;
          END IF;       COMMIT; 
    END ;
      

  2.   


    不好意思,我写错了,我写的是INSERT INTO A(ID),就是感觉if后面的没有执行,我拿到代码分步执行都是可以的
      

  3.   

    我插入后还有一个查询动作的,即查询-为0则插入-再查询1 我把这3个动作写到存储过程调用的时候,插入应该是没有执行,所以最后查询不到数据;
    2 把3个动作写在代码里分步执行最后能查到数据。所以我猜测是没有做插入的动作,也可能做了,会不会是ORACLE缓存导致的问题?
      

  4.   

    你看看SELECT COUNT (*)   INTO v_count   FROM A
    这个结果是不是0