Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Every Участник со стажем
Вступление в Клуб: 28.12.2008
|
Ср Ноя 12, 2014 07:18  Локальные переменные |
|
Полезность: Нет оценки
|
Вопрос следующий, как можно быстро (без перечисления переменных с присвоением null) очистить переменные описанные в локальном описании операции (может быть > 100) , ибо при последующем вызове полученные раннее значения этих параметров не затираются.
Как правило это операция печати, переменные из локального описания вычисляются или переопределяются в проверке по умолчанию один раз и подставляются в разные отчеты. При повторном вызове операции печати в той же сессии переменные все еще хранят данные с предыдущего вызова и как раз необходимо переинициализировать их. |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Ср Ноя 12, 2014 07:46  Re: Локальные переменные |
|
Полезность: Нет оценки
|
Every пишет: | Вопрос следующий, как можно быстро (без перечисления переменных с присвоением null) очистить переменные описанные в локальном описании операции (может быть > 100) , ибо при последующем вызове полученные раннее значения этих параметров не затираются.
Как правило это операция печати, переменные из локального описания вычисляются или переопределяются в проверке по умолчанию один раз и подставляются в разные отчеты. При повторном вызове операции печати в той же сессии переменные все еще хранят данные с предыдущего вызова и как раз необходимо переинициализировать их. |
pragma SERIALLY_REUSABLE; |
|
 |
Every Участник со стажем
Вступление в Клуб: 28.12.2008
|
Ср Ноя 12, 2014 09:56  Re: Локальные переменные |
|
Полезность: Нет оценки
|
devor пишет: |
pragma SERIALLY_REUSABLE; |
Попробовал, не подходит, переменные теряют значения в (P_MESSAGE = 'VALIDATE'), полученные ранее в (P_MESSAGE = 'DEFAULT') . Для библиотеки випа кэш.библиотека работает нормально, но в простых операциях оно не особо применимо |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Ср Ноя 12, 2014 12:17  Re: Локальные переменные |
|
Полезность: Нет оценки
|
Every пишет: | devor пишет: |
pragma SERIALLY_REUSABLE; |
Попробовал, не подходит, переменные теряют значения в (P_MESSAGE = 'VALIDATE'), полученные ранее в (P_MESSAGE = 'DEFAULT') . Для библиотеки випа кэш.библиотека работает нормально, но в простых операциях оно не особо применимо |
Логично.
pragma SERIALLY_REUSABLE командует очищать переменные сразу, как только сессия переходит от состояния ACTIVE в любое другое.
Попробуйте dbms_session.reset_package. |
|
 |
Every Участник со стажем
Вступление в Клуб: 28.12.2008
|
Ср Ноя 12, 2014 14:07  Re: Локальные переменные |
|
Полезность: Нет оценки
|
Random пишет: |
Логично.
pragma SERIALLY_REUSABLE командует очищать переменные сразу, как только сессия переходит от состояния ACTIVE в любое другое.
Попробуйте dbms_session.reset_package. |
Страшная сила заключена в вызове reset_package - The RESET_PACKAGE procedure resets all package states for the session (http://www.toadworld.com/platforms/oracle/w/wiki/3233.dbms-session-reset-package.aspx)
Может есть другой безопасный способ очистить переменные в локальном описании ?! |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Ср Ноя 12, 2014 14:43  Re: Локальные переменные |
|
Полезность: 1
|
Every пишет: | Random пишет: |
Логично.
pragma SERIALLY_REUSABLE командует очищать переменные сразу, как только сессия переходит от состояния ACTIVE в любое другое.
Попробуйте dbms_session.reset_package. |
Страшная сила заключена в вызове reset_package - The RESET_PACKAGE procedure resets all package states for the session (http://www.toadworld.com/platforms/oracle/w/wiki/3233.dbms-session-reset-package.aspx)
Может есть другой безопасный способ очистить переменные в локальном описании ?! |
Тогда объедините все переменные локального описания в одну структуру, сделайте одну переменную типа этой структуры, и чистите её одну. |
|
 |
Every Участник со стажем
Вступление в Клуб: 28.12.2008
|
Ср Ноя 12, 2014 15:06  Re: Локальные переменные |
|
Полезность: Нет оценки
|
Random пишет: | Every пишет: | Random пишет: |
Логично.
pragma SERIALLY_REUSABLE командует очищать переменные сразу, как только сессия переходит от состояния ACTIVE в любое другое.
Попробуйте dbms_session.reset_package. |
Страшная сила заключена в вызове reset_package - The RESET_PACKAGE procedure resets all package states for the session (http://www.toadworld.com/platforms/oracle/w/wiki/3233.dbms-session-reset-package.aspx)
Может есть другой безопасный способ очистить переменные в локальном описании ?! |
Тогда объедините все переменные локального описания в одну структуру, сделайте одну переменную типа этой структуры, и чистите её одну. |
Так в общем то! Но надо старые операции переписывать, что не очень хочется делать ... |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|