<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FTransaction%2FFlashbacks</id>
		<title>Oracle PL/SQL Tutorial/Transaction/Flashbacks - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FTransaction%2FFlashbacks"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Transaction/Flashbacks&amp;action=history"/>
		<updated>2026-04-07T08:12:42Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Transaction/Flashbacks&amp;diff=3705&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Transaction/Flashbacks&amp;diff=3705&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Transaction/Flashbacks&amp;diff=3706&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Transaction/Flashbacks&amp;diff=3706&amp;oldid=prev"/>
				<updated>2010-05-26T10:07:41Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== DBMS_FLASHBACK.ENABLE_AT_SYSTEM_CHANGE_NUMBER() procedure enables you to perform a flashback to an SCN.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; VARIABLE current_scn NUMBER&lt;br /&gt;
SQL&amp;gt; EXECUTE :current_scn := DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER();&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; PRINT current_scn&lt;br /&gt;
CURRENT_SCN&lt;br /&gt;
-----------&lt;br /&gt;
    5547739&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; EXECUTE DBMS_FLASHBACK.ENABLE_AT_SYSTEM_CHANGE_NUMBER(:current_scn);&lt;br /&gt;
BEGIN DBMS_FLASHBACK.ENABLE_AT_SYSTEM_CHANGE_NUMBER(:current_scn); END;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
--&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Granting the Privilege for Using Flashbacks==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The following example connects as the sys user and grants the EXECUTE privilege on DBMS_FLASHBACK to the store user:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CONNECT sys/change_on_install AS sysdba&lt;br /&gt;
GRANT EXECUTE ON SYS.DBMS_FLASHBACK TO store;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Query Flashbacks==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If you mistakenly commit changes and you want to view rows as they originally were, you can use a query flashback.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You can then use the results of a query flashback to manually change rows back to their original values if you need to.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In addition, flashbacks can be based on a datetime or system change number (SCN).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The database uses SCNs to track changes made to data, and you can use them to flash back to a particular SCN in the database.&amp;lt;/p&amp;gt;&lt;br /&gt;
35. 6. Flashbacks&lt;br /&gt;
35. 6. 1. &lt;br /&gt;
Query Flashbacks&lt;br /&gt;
35. 6. 2. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0680__Transaction/GrantingthePrivilegeforUsingFlashbacks.htm&amp;quot;&amp;gt;Granting the Privilege for Using Flashbacks&amp;lt;/a&amp;gt;&lt;br /&gt;
35. 6. 3. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0680__Transaction/TimeQueryFlashbacks.htm&amp;quot;&amp;gt;Time Query Flashbacks&amp;lt;/a&amp;gt;&lt;br /&gt;
35. 6. 4. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0680__Transaction/TodisableaflashbackyouexecuteDBMSFLASHBACKDISABLE.htm&amp;quot;&amp;gt;To disable a flashback, you execute DBMS_FLASHBACK.DISABLE()&amp;lt;/a&amp;gt;&lt;br /&gt;
35. 6. 5. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0680__Transaction/SystemChangeNumberQueryFlashbacks.htm&amp;quot;&amp;gt;System Change Number Query Flashbacks&amp;lt;/a&amp;gt;&lt;br /&gt;
35. 6. 6. &lt;br /&gt;
&amp;lt;A href=&amp;quot;/Tutorial/Oracle/0680__Transaction/DBMSFLASHBACKENABLEATSYSTEMCHANGENUMBERprocedureenablesyoutoperformaflashbacktoanSCN.htm&amp;quot;&amp;gt;DBMS_FLASHBACK.ENABLE_AT_SYSTEM_CHANGE_NUMBER() procedure enables you to perform a flashback to an SCN.&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== System Change Number Query Flashbacks==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Flashbacks based on system change numbers (SCNs) can be more precise than those based on a time, because the database uses SCNs to track changes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; VARIABLE current_scn NUMBER&lt;br /&gt;
SQL&amp;gt; EXECUTE :current_scn := DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER();&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; PRINT current_scn&lt;br /&gt;
CURRENT_SCN&lt;br /&gt;
-----------&lt;br /&gt;
    5547739&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Time Query Flashbacks==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; EXECUTE DBMS_FLASHBACK.ENABLE_AT_TIME(SYSDATE - 10 / 1440);&lt;br /&gt;
BEGIN DBMS_FLASHBACK.ENABLE_AT_TIME(SYSDATE - 10 / 1440); END;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== To disable a flashback, you execute DBMS_FLASHBACK.DISABLE()==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; EXECUTE DBMS_FLASHBACK.DISABLE();&lt;br /&gt;
PL/SQL procedure successfully completed.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&amp;lt;p&amp;gt;You must disable a flashback before you can enable it again.&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>