VB调用存储过程,这个存储过程写在oracle里边。
在oracle端,也是commit数据了。奇怪的是,执行完VB代码,在VB端,数据集中是可以查到数据的(此时,在oracle端是检索不到数据)。
更奇怪的是,直接在oracle端test,也检索不到数据。请问这是为什么?

解决方案 »

  1.   

    应该是一个库呀。
    即便不是一个库,那为什么在oracle端,test时(test就是用test script对程序进行debug),表里也是没数据呢?好奇怪啊~~
      

  2.   

    你就提供这些信息,就是版主来了,也没法帮你啊。
    好好查查到底是不是一个库,再不行,把代码贴出来,SQL也贴出来。
      

  3.   

    各位,VB调用oracle里边的package,在package中,做一些查询,把得到的数据放入一个临时表中,VB通过返回值知道是否执行完oracle代码了,然后查询这个临时表,把数据取出来,打印出来。在test oracle端的package时,返回值是正确的,也commit数据了,但是临时表中就是查询不到值。另外,就一个数据库,怎么会连接到不同的库拉?
      

  4.   


    FOR hatsuLoop IN 1..g_hatsueki_array.COUNT LOOP            v_hatsueki_cd := g_hatsueki_array(hatsuLoop);            FOR chakuLoop IN 1..g_chakueki_array.COUNT LOOP                v_chakueki_cd := g_chakueki_array(chakuLoop);                v_ret_sts := GET_JININ(p_chohyo_syu, v_hatsueki_cd, v_chakueki_cd, v_jinin_temp);                IF v_ret_sts < 0 THEN
                        RAISE_APPLICATION_ERROR(-20000, 'xxxxx');
                    END IF;
                    IF v_jinin_temp IS NULL
                        AND hatsuLoop != chakuLoop THEN
                        v_jinin_temp := 0;
                    END IF;
                    IF chakuLoop = 1 THEN
                        v_jinin_1 := v_jinin_temp;
                    ELSIF chakuLoop = 2 THEN
                        v_jinin_2 := v_jinin_temp;
                    ELSIF chakuLoop = 3 THEN
                        v_jinin_3 := v_jinin_temp;
                    ELSIF chakuLoop = 4 THEN
                        v_jinin_4 := v_jinin_temp;
                    ELSIF chakuLoop = 5 THEN
                        v_jinin_5 := v_jinin_temp;
                    ELSIF chakuLoop = 6 THEN
                        v_jinin_6 := v_jinin_temp;
                    ELSIF chakuLoop = 7 THEN
                        v_jinin_7 := v_jinin_temp;
                    ELSIF chakuLoop = 8 THEN
                        v_jinin_8 := v_jinin_temp;
                    ELSIF chakuLoop = 9 THEN
                        v_jinin_9 := v_jinin_temp;
                    ELSIF chakuLoop = 10 THEN
                        v_jinin_10 := v_jinin_temp;
                    ELSIF chakuLoop = 11 THEN
                        v_jinin_11 := v_jinin_temp;
                    ELSIF chakuLoop = 12 THEN
                        v_jinin_12 := v_jinin_temp;
                    ELSIF chakuLoop = 13 THEN
                        v_jinin_13 := v_jinin_temp;
                    ELSE
                        v_jinin_14 := v_jinin_temp;
                    END IF;            END LOOP;
                INSERT INTO WK_PF_TOU0020_TMP
                (
                    CHOHYO_SYU,
                    DATA_ID,
                    UNYO_YMD,
                    HATSUEKI_CD,
                    JININ_1,
                    JININ_2,
                    JININ_3,
                    JININ_4,
                    JININ_5,
                    JININ_6,
                    JININ_7,
                    JININ_8,
                    JININ_9,
                    JININ_10,
                    JININ_11,
                    JININ_12,
                    JININ_13,
                    JININ_14
                )
                VALUES
                (
                    p_chohyo_syu,
                    hatsuLoop,
                    v_g_date,
                    v_hatsueki_cd,
                    v_jinin_1,
                    v_jinin_2,
                    v_jinin_3,
                    v_jinin_4,
                    v_jinin_5,
                    v_jinin_6,
                    v_jinin_7,
                    v_jinin_8,
                    v_jinin_9,
                    v_jinin_10,
                    v_jinin_11,
                    v_jinin_12,
                    v_jinin_13,
                    v_jinin_14
                );
            
            END LOOP;
            
            COMMIT;
    这个就是插入的SQL文~~设置断点进去,数据是有的。
    但是COMMIT以后,什么都不发生~~
      

  5.   

    有一个现象就是,只有在同一个SQL文的窗口中,做完操作,再查询,是可以查到数据的。
    我用的是PL/SQL。但是其他功能,插入数据库中表的时候,是没有这个问题的。只要插入成功,怎样都可以看到数据。这是锁的问题?应该怎么办?
      

  6.   

    是因为表定义的时候,是
    ON COMMIT PRESERVE ROWS
    NOCACHE所以,才检索不到数据。