Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Маленький Oracle внутри Oracle  [new]
Chitago
Member

Откуда:
Сообщений: 306
Привет,

я вот не совсем понимаю идею вот этого кода:

DECLARE
   l_scn INTEGER := dbms_flashback.get_system_change_number;
   r_mlog table1%ROWTYPE;
   l_rowid ROWID;
   CURSOR c_data (i_scn IN INTEGER)
      IS
         SELECT
               col1 AS sourceid
             , col2 AS logid
             , col3 AS dmltype
            FROM table1 AS OF SCN i_scn
            ;
BEGIN
   OPEN c_data (l_scn);
   LOOP
      FETCH c_data
         INTO
            r_mlog.col1
          , l_rowid
          , r_mlog.col2;
      EXIT WHEN c_data%NOTFOUND;
   END LOOP;
   CLOSE c_data;
END;

Я заменил имя таблицы и полей, но суть, надеюсь понятна. Насколько я понял, человек пытается добиться гарантированного чтения на текущий SCN, что уже и так гарантирвано Oracle. У меня по этому поводу пара вопросов - или я уже так устал сегодня, что не понимаю очевидных вещей и код имеет право на существование. Если так - объясните мне смысл этого, плз.
8 июн 10, 17:44    [8910510]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
капитан очевидность ыыы
Guest
Chitago,

1) не трогай то что работает (если работает).
2) чем проще тем лучше.
8 июн 10, 18:24    [8910770]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18364
Анонимный блок? Тренируется товарищ... Возможно, пишет мега-реко-тулзу :)
8 июн 10, 18:32    [8910825]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
Chitago
Member

Откуда:
Сообщений: 306
капитан очевидность ыыы
Chitago,

1) не трогай то что работает (если работает).
2) чем проще тем лучше.

1) Работает, но вроде плохо - он же сам и жаловался. Причем про это чудо не упомянул совсем, я это из трассировки увидел.
2) Ничего себе проще.
Меня просто поразил полет мысли - я думал, что я что-то упустил.
8 июн 10, 18:35    [8910840]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51780

Chitago
1) Работает, но вроде плохо - он же сам и жаловался.

Расскажи ему, что в Оракуле существует не только уровень изоляции Read
Committed. У меня такое впечатление, что он таким способом пытается
добиться консистентности данных.

Posted via ActualForum NNTP Server 1.4

8 июн 10, 18:38    [8910858]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18364
Dimitry Sibiryakov

Расскажи ему, что в Оракуле существует не только уровень изоляции Read
Committed. У меня такое впечатление, что он таким способом пытается
добиться консистентности данных.

А что, в RC Statement-level read consistency отменили?
8 июн 10, 18:43    [8910887]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51780

andrey_anonymous

А что, в RC Statement-level read consistency отменили?

Нет, но ведь аффтар может и не ограничиться одним statement-ом. Оттого и
присваивает SCN переменной, а не использует прямо в запросе.

Posted via ActualForum NNTP Server 1.4

8 июн 10, 18:47    [8910910]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18364
Dimitry Sibiryakov

присваивает SCN переменной, а не использует прямо в запросе.

l_scn INTEGER := dbms_flashback.get_system_change_number;
8 июн 10, 18:49    [8910920]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
Chitago
Member

Откуда:
Сообщений: 306
Dimitry Sibiryakov

andrey_anonymous

А что, в RC Statement-level read consistency отменили?

Нет, но ведь аффтар может и не ограничиться одним statement-ом. Оттого и
присваивает SCN переменной, а не использует прямо в запросе.
Да вроде нет, поэтому мне и показался такой подход мягко говоря странным. Ну да ладно, кто его знает, что там у него в голове. Может и была какая-нибудь идея в начале, а потом забыл.
8 июн 10, 18:51    [8910932]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
RA\/EN
Member

Откуда:
Сообщений: 3659
Chitago
Dimitry Sibiryakov

andrey_anonymous

А что, в RC Statement-level read consistency отменили?

Нет, но ведь аффтар может и не ограничиться одним statement-ом. Оттого и
присваивает SCN переменной, а не использует прямо в запросе.
Да вроде нет, поэтому мне и показался такой подход мягко говоря странным. Ну да ладно, кто его знает, что там у него в голове. Может и была какая-нибудь идея в начале, а потом забыл.


Вот если бы открытий c_data было несколько. тогда смысл бы был. Или открытие было не первым оператором, а предварительно была бы модификация данных, а потом "оп-па!" - и открываем курсор "как это было до модификации".
8 июн 10, 19:02    [8910999]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18364
RA\/EN
Вот если бы

Да если бы l_scn просто был параметром или биндом - уже достаточно чтобы найти разумное применение.
8 июн 10, 19:20    [8911088]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
RA\/EN
Member

Откуда:
Сообщений: 3659
andrey_anonymous
RA\/EN
Вот если бы

Да если бы l_scn просто был параметром или биндом - уже достаточно чтобы найти разумное применение.
В данном примере l_scn и есть глобальная переменная по отношению к курсору
9 июн 10, 07:18    [8912515]     Ответить | Цитировать Сообщить модератору
 Re: Маленький Oracle внутри Oracle  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18364
RA\/EN
andrey_anonymous
RA\/EN
Вот если бы

Да если бы l_scn просто был параметром или биндом - уже достаточно чтобы найти разумное применение.
В данном примере l_scn и есть глобальная переменная по отношению к курсору

Но не по отношению с statement, так что зря смеешься ;)
9 июн 10, 15:11    [8916437]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить