0

次のコードがあります

TYPE t_dc IS TABLE OF TEMP_DC%ROWTYPE INDEX BY PLS_INTEGER;
o_u_dc t_dc;
n_index_update_dc BINARY_INTEGER := 0;

そして、スクリプトの最後に私が持っている

            IF n_index_update_dc > 0
            THEN
                FORALL dc IN o_u_dc.first..o_u_dc.last SAVE EXCEPTIONS
                    UPDATE TEMP_DC
                    SET COL1 = o_u_dc(n_index_update_dc).col1
                    WHERE COLPK = o_u_dc(n_index_update_dc).COLPK;
            END IF;
            COMMIT;

そして、私はエラーが発生しています116 7 PLS-00435: DML statement without BULK In-BIND cannot be used inside FORALL

オラクルのドキュメントをオンラインで調べてみましたが、不足しているものを理解できませんでした。何か助けはありますか?

4

1 に答える 1

1

どこから取得したのかわかりませんがn_index_update_dc 、使用する必要があるコードは次のとおりです。

            IF n_index_update_dc > 0 THEN
                FORALL dc IN o_u_dc.first..o_u_dc.last SAVE EXCEPTIONS
                    UPDATE TEMP_DC
                    SET COL1 = o_u_dc(dc).col1
                    WHERE COLPK = o_u_dc(dc).COLPK;
            END IF;
            COMMIT;

それはあなたがどのように満たすかにもよりますo_u_dc。たぶん、それはあなたが達成したいことではありません。

于 2013-04-05T02:00:50.843 に答える