Запуск обновления из SQL Developer с другими результатами, как из пакета - PullRequest
0 голосов
/ 09 апреля 2019

Я попытался запустить обновление в рамках операции курсора ('cur_palettenkosten') в процедуре plsql.

Я сузил, что вмещающий курсор содержит данные и что обновление не влияет ни на какие строки (выводsql% rowcount)


PROCEDURE p_ref_lschein_rueckstellungen AS

 for cur_palettenkosten in (
    select land, spediteur_nr, plz_von, plz_bis,  preis, gueltig_von, geultig_bis, gzp.behaelter_nr
    from spediteur_fahrtkosten sp,gutschrift_zuord_pal gzp 
    where sp.behaelter_nr = 1 
    )

    LOOP

        UPDATE lschein_rueckstellungen
           SET preis = cur_palettenkosten.preis
          WHERE to_number(sped_nr) = to_number(cur_palettenkosten.spediteur_nr) 
           AND to_number(lhm_typ) = to_number(cur_palettenkosten.behaelter_nr)
           AND to_char(kst) = to_char(cur_palettenkosten.land);

        dbms_output.put_line (cur_palettenkosten.spediteur_nr || ' '||cur_palettenkosten.behaelter_nr|| ' '|| cur_palettenkosten.land || sql%rowcount);

    END LOOP;
COMMIT;

END p_ref_lschein_rueckstellungen;

Запуск сценария из редактора следующим образом:

BEGIN
    p_ref_lschein_rueckstellungen;
END

не влияет на таблицу 'lschein_rueckstellungen', которую я хотел обновить.

Запуск его из того же окна редактора, как это:

BEGIN
    <procedure content copied here>
END

обновляет данные по желанию.

Есть какие-нибудь идеи, что я сделал не так?

1 Ответ

1 голос
/ 10 апреля 2019

Может быть, вы открываете новый сеанс для каждой вкладки?Тогда, конечно, вы должны зафиксировать обновление!

...