<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://dosideas.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Oracle_Flashback_Transaction_Query</id>
		<title>Oracle Flashback Transaction Query - Historial de revisiones</title>
		<link rel="self" type="application/atom+xml" href="https://dosideas.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Oracle_Flashback_Transaction_Query"/>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Oracle_Flashback_Transaction_Query&amp;action=history"/>
		<updated>2026-04-21T18:51:24Z</updated>
		<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Oracle_Flashback_Transaction_Query&amp;diff=2988&amp;oldid=prev</id>
		<title>Admin en 18:10 26 ago 2009</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Oracle_Flashback_Transaction_Query&amp;diff=2988&amp;oldid=prev"/>
				<updated>2009-08-26T18:10:26Z</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;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 18:10 26 ago 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Oracle]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Flashback Transaction Query es una mejora introducida en [Oracle10g], de [[Oracle Flashback Query]] y utilizada frecuentemente en conjunto con [[Oracle Flashback Version Query]]. Flashback Transaction Query nos muestra información de la transacción adicional a la obtenida mediante [[Oracle Flashback Version Query]] , específicamente la sentencia de UNDO necesaria para volver la transacción atrás y que usuario de base de datos realizó la misma.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Flashback Transaction Query es una mejora introducida en [Oracle10g], de [[Oracle Flashback Query]] y utilizada frecuentemente en conjunto con [[Oracle Flashback Version Query]]. Flashback Transaction Query nos muestra información de la transacción adicional a la obtenida mediante [[Oracle Flashback Version Query]] , específicamente la sentencia de UNDO necesaria para volver la transacción atrás y que usuario de base de datos realizó la misma.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Oracle_Flashback_Transaction_Query&amp;diff=287&amp;oldid=prev</id>
		<title>201.251.185.130: Página nueva: Flashback Transaction Query es una mejora introducida en [Oracle10g], de Oracle Flashback Query y utilizada frecuentemente en conjunto con Oracle Flashback Version Query. Flas...</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Oracle_Flashback_Transaction_Query&amp;diff=287&amp;oldid=prev"/>
				<updated>2008-07-25T15:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;Página nueva: Flashback Transaction Query es una mejora introducida en [Oracle10g], de &lt;a href=&quot;/wiki/Oracle_Flashback_Query&quot; title=&quot;Oracle Flashback Query&quot;&gt;Oracle Flashback Query&lt;/a&gt; y utilizada frecuentemente en conjunto con &lt;a href=&quot;/wiki/Oracle_Flashback_Version_Query&quot; title=&quot;Oracle Flashback Version Query&quot;&gt;Oracle Flashback Version Query&lt;/a&gt;. Flas...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Flashback Transaction Query es una mejora introducida en [Oracle10g], de [[Oracle Flashback Query]] y utilizada frecuentemente en conjunto con [[Oracle Flashback Version Query]]. Flashback Transaction Query nos muestra información de la transacción adicional a la obtenida mediante [[Oracle Flashback Version Query]] , específicamente la sentencia de UNDO necesaria para volver la transacción atrás y que usuario de base de datos realizó la misma.&lt;br /&gt;
&lt;br /&gt;
La vista que utilizaremos para ver esta información es FLASHBACK_TRANSACTION_QUERY, cuya columna xid coincide con el valor de la pseudo-columna versions_xid generada por [[Oracle Flashback Version Query]].&lt;br /&gt;
&lt;br /&gt;
Para poder consultar esta tabla el usuario debe tener el siguiente privilegio:&lt;br /&gt;
&lt;br /&gt;
 SELECT ANY TRANSACTION&lt;br /&gt;
&lt;br /&gt;
 sys@LAB10G&amp;gt; grant select any transaction to scott;&lt;br /&gt;
 Concesión terminada correctamente.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; desc flashback_transaction_query&lt;br /&gt;
 Nombre            Nulo Tipo&lt;br /&gt;
 ----------------- ---- --------------&lt;br /&gt;
 XID                    RAW(8)&lt;br /&gt;
 START_SCN              NUMBER&lt;br /&gt;
 START_TIMESTAMP        DATE&lt;br /&gt;
 COMMIT_SCN             NUMBER&lt;br /&gt;
 COMMIT_TIMESTAMP       DATE&lt;br /&gt;
 LOGON_USER             VARCHAR2(30)&lt;br /&gt;
 UNDO_CHANGE#           NUMBER&lt;br /&gt;
 OPERATION              VARCHAR2(32)&lt;br /&gt;
 TABLE_NAME             VARCHAR2(256)&lt;br /&gt;
 TABLE_OWNER            VARCHAR2(32)&lt;br /&gt;
 ROW_ID                 VARCHAR2(19)&lt;br /&gt;
 UNDO_SQL               VARCHAR2(4000)&lt;br /&gt;
&lt;br /&gt;
=Ejemplo=&lt;br /&gt;
&lt;br /&gt;
Vamos a utilizar las transacciones generadas por Flashback Version Query.&lt;br /&gt;
&lt;br /&gt;
==Modifico datos puntuales==&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; update emp_flash set ename='CARO' where empno=7369;&lt;br /&gt;
 1 fila actualizada.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; commit;&lt;br /&gt;
 Confirmación terminada.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; update emp_flash set ename='PEPE' where empno=7369;&lt;br /&gt;
 1 fila actualizada.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; commit;&lt;br /&gt;
 Confirmación terminada.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; SELECT&lt;br /&gt;
  2  versions_startscn, versions_endscn, versions_starttime, versions_endtime,&lt;br /&gt;
  3  versions_xid, versions_operation, ename&lt;br /&gt;
  4  FROM emp_flash&lt;br /&gt;
  5  VERSIONS BETWEEN TIMESTAMP&lt;br /&gt;
  6           TO_TIMESTAMP('24-08-2007 11:35', 'DD-MM-YYYY HH24:MI')&lt;br /&gt;
  7       AND TO_TIMESTAMP('24-08-2007 11:44', 'DD-MM-YYYY HH24:MI')&lt;br /&gt;
  8  WHERE empno = 7369;&lt;br /&gt;
&lt;br /&gt;
 startscn   endscn starttime         endtime           xid              o ENAME&lt;br /&gt;
 -------- -------- ----------------- ----------------- ---------------- - ------&lt;br /&gt;
 1032624          24/08/07 11:43:31                   04000300A4010000 U PEPE&lt;br /&gt;
 1032516  1032624 24/08/07 11:38:18 24/08/07 11:43:31 010020009B010000 U CARO&lt;br /&gt;
                                                                        SMITH&lt;br /&gt;
 scott@LAB10G&amp;gt; select&lt;br /&gt;
  2  undo_change#, operation, table_owner, table_name, row_id, undo_sql&lt;br /&gt;
  3  from flashback_transaction_query where xid = HEXTORAW('010020009B010000')&lt;br /&gt;
&lt;br /&gt;
 UNDO_CHANGE# OPERATION  TABLE_OWNE TABLE_NAME ROW_ID&lt;br /&gt;
 ------------ ---------- ---------- ---------- -------------------&lt;br /&gt;
 UNDO_SQL&lt;br /&gt;
 -------------------------------------------------------------------------------&lt;br /&gt;
  1 UPDATE     SCOTT      EMP_FLASH  AAANC8AAEAAAAGkAAO&lt;br /&gt;
 update &amp;quot;SCOTT&amp;quot;.&amp;quot;EMP_FLASH&amp;quot; set &amp;quot;ENAME&amp;quot; = 'SMITH' where ROWID ='AAANC8AAEAAAAGkAAO';&lt;br /&gt;
&lt;br /&gt;
  2 BEGIN&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; select&lt;br /&gt;
  2  undo_change#, operation, table_owner, table_name, row_id, undo_sql&lt;br /&gt;
  3  from flashback_transaction_query where xid = HEXTORAW('04000300A4010000');&lt;br /&gt;
&lt;br /&gt;
 UNDO_CHANGE# OPERATION  TABLE_OWNE TABLE_NAME ROW_ID&lt;br /&gt;
 ------------ ---------- ---------- ---------- -------------------&lt;br /&gt;
 UNDO_SQL&lt;br /&gt;
 -------------------------------------------------------------------------------&lt;br /&gt;
  1 UPDATE     SCOTT      EMP_FLASH  AAANC8AAEAAAAGkAAO&lt;br /&gt;
update &amp;quot;SCOTT&amp;quot;.&amp;quot;EMP_FLASH&amp;quot; set &amp;quot;ENAME&amp;quot; = 'CARO' where ROWID ='AAANC8AAEAAAAGkAAO';&lt;br /&gt;
&lt;br /&gt;
  2 BEGIN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modifico muchos datos por sentencia==&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; update emp_flash set sal=sal+100 where deptno=10;&lt;br /&gt;
 3 filas actualizadas.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; commit;&lt;br /&gt;
 Confirmación terminada.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; SELECT&lt;br /&gt;
  2  versions_starttime, versions_endtime,&lt;br /&gt;
  3  versions_xid, versions_operation, empno, ename, sal&lt;br /&gt;
  4  FROM emp_flash&lt;br /&gt;
  5  VERSIONS BETWEEN TIMESTAMP&lt;br /&gt;
  6            TO_TIMESTAMP('24-08-2007 12:30', 'DD-MM-YYYY HH24:MI')&lt;br /&gt;
  7        AND TO_TIMESTAMP('24-08-2007 12:42', 'DD-MM-YYYY HH24:MI')&lt;br /&gt;
  8  WHERE deptno = 10;&lt;br /&gt;
&lt;br /&gt;
 StartTime         EndTime           Xid              O  EMPNO ENAME    SAL&lt;br /&gt;
 ----------------- ----------------- ---------------- - ------ ------ -----&lt;br /&gt;
 24/08/07 12:40:12                   0200120099010000 U   7782 CLARK   2550&lt;br /&gt;
 24/08/07 12:40:12                   0200120099010000 U   7839 KING    5100&lt;br /&gt;
 24/08/07 12:40:12                   0200120099010000 U   7934 MILLER  1400&lt;br /&gt;
 24/08/07 12:40:12                                        7782 CLARK   2450&lt;br /&gt;
 24/08/07 12:40:12                                        7839 KING    5000&lt;br /&gt;
 24/08/07 12:40:12                                        7934 MILLER  1300&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; select&lt;br /&gt;
  2  undo_change#, operation, table_owner, table_name, row_id, undo_sql&lt;br /&gt;
  3  from flashback_transaction_query where xid = HEXTORAW('0200120099010000');&lt;br /&gt;
&lt;br /&gt;
 UNDO_CHANGE# OPERATION  TABLE_OWNE TABLE_NAME ROW_ID&lt;br /&gt;
 ------------ ---------- ---------- ---------- -------------------&lt;br /&gt;
 UNDO_SQL&lt;br /&gt;
 -------------------------------------------------------------------------------&lt;br /&gt;
  1 UPDATE     SCOTT      EMP_FLASH  AAANC8AAEAAAAGkAAU&lt;br /&gt;
update &amp;quot;SCOTT&amp;quot;.&amp;quot;EMP_FLASH&amp;quot; set &amp;quot;SAL&amp;quot; = '2450' where ROWID = 'AAANC8AAEAAAAGkAAU';&lt;br /&gt;
&lt;br /&gt;
  2 UPDATE     SCOTT      EMP_FLASH  AAANC8AAEAAAAGkAAW&lt;br /&gt;
update &amp;quot;SCOTT&amp;quot;.&amp;quot;EMP_FLASH&amp;quot; set &amp;quot;SAL&amp;quot; = '5000' where ROWID = 'AAANC8AAEAAAAGkAAW';&lt;br /&gt;
&lt;br /&gt;
  3 UPDATE     SCOTT      EMP_FLASH  AAANC8AAEAAAAGkAAb&lt;br /&gt;
update &amp;quot;SCOTT&amp;quot;.&amp;quot;EMP_FLASH&amp;quot; set &amp;quot;SAL&amp;quot; = '1300' where ROWID = 'AAANC8AAEAAAAGkAAb';&lt;br /&gt;
&lt;br /&gt;
  4 BEGIN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Otras operaciones==&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; delete from emp_flash where ename='MILLER';&lt;br /&gt;
 1 fila suprimida.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; commit;&lt;br /&gt;
 Confirmación terminada.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; insert into emp_flash&lt;br /&gt;
  2  values (8888, 'Barbiero', 'CLERK', 7782, sysdate, 1000, null, 10);&lt;br /&gt;
 1 fila creada.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; commit;&lt;br /&gt;
 Confirmación terminada.&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; SELECT&lt;br /&gt;
  2  versions_starttime, versions_endtime,&lt;br /&gt;
  3  versions_xid, versions_operation, empno, ename, sal&lt;br /&gt;
  4  FROM emp_flash&lt;br /&gt;
  5  VERSIONS BETWEEN TIMESTAMP&lt;br /&gt;
  6           TO_TIMESTAMP('24-08-2007 12:30', 'DD-MM-YYYY HH24:MI')&lt;br /&gt;
  7       AND TO_TIMESTAMP('24-08-2007 13:14', 'DD-MM-YYYY HH24:MI')&lt;br /&gt;
  8  WHERE versions_operation &amp;lt;&amp;gt; 'U';&lt;br /&gt;
&lt;br /&gt;
 StartTime         EndTime           Xid              O  EMPNO ENAME        SAL&lt;br /&gt;
 ----------------- ----------------- ---------------- - ------ ---------- -----&lt;br /&gt;
 24/08/07 13:13:38                   0A0007009B010000 I   8888 Barbiero    1000&lt;br /&gt;
 24/08/07 13:11:59                   09000500A4010000 D   7934 MILLER      1400&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; select&lt;br /&gt;
  2 undo_change#, operation, table_owner, table_name, row_id, undo_sql&lt;br /&gt;
  3  from flashback_transaction_query where xid = HEXTORAW('09000500A4010000');&lt;br /&gt;
&lt;br /&gt;
 UNDO_CHANGE# OPERATION  TABLE_OWNE TABLE_NAME ROW_ID&lt;br /&gt;
 ------------ ---------- ---------- ---------- -------------------&lt;br /&gt;
 UNDO_SQL&lt;br /&gt;
 -------------------------------------------------------------------------------&lt;br /&gt;
  1 DELETE     SCOTT      EMP_FLASH  AAANC8AAEAAAAGkAAb&lt;br /&gt;
Insert into &amp;quot;SCOTT&amp;quot;.&amp;quot;EMP_FLASH&amp;quot; (&amp;quot;EMPNO&amp;quot;, &amp;quot;ENAME&amp;quot;, &amp;quot;JOB&amp;quot;, &amp;quot;MGR&amp;quot;, &amp;quot;HIREDATE&amp;quot;, &amp;quot;SAL&amp;quot;,&amp;quot;COMM&amp;quot;, &amp;quot;DEPTNO&amp;quot;) values ('7934', 'MILLER', 'CLERK', '7782', TO_DATE('23/01/82','DD/MM/RR'), '1400', NULL, '10');&lt;br /&gt;
&lt;br /&gt;
  2 BEGIN&lt;br /&gt;
&lt;br /&gt;
 scott@LAB10G&amp;gt; select&lt;br /&gt;
  2  undo_change#, operation, table_owner, table_name, row_id, undo_sql&lt;br /&gt;
  3  from flashback_transaction_query where xid = HEXTORAW('0A0007009B010000');&lt;br /&gt;
&lt;br /&gt;
 UNDO_CHANGE# OPERATION  TABLE_OWNE TABLE_NAME ROW_ID&lt;br /&gt;
 ------------ ---------- ---------- ---------- -------------------&lt;br /&gt;
 UNDO_SQL&lt;br /&gt;
 -------------------------------------------------------------------------------&lt;br /&gt;
  1 INSERT     SCOTT      EMP_FLASH  AAANC8AAEAAAAGkAAA&lt;br /&gt;
delete from &amp;quot;SCOTT&amp;quot;.&amp;quot;EMP_FLASH&amp;quot; where ROWID = 'AAANC8AAEAAAAGkAAA';&lt;br /&gt;
&lt;br /&gt;
  2 BEGIN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Entonces de la ejecución de los ejemplos observamos lo siguiente:&lt;br /&gt;
* Aunque en los ejemplos solo accedí a la vista FLASHBACK_TRANSACTON_QUERY por xid, podría acceder por cualquiera de las columnas de la vista.&lt;br /&gt;
*Las  sentencias que generan cambios masivos (en mas de una fila), generan en FLASHBACK_TRANSACTION_QUERY tantas filas como filas modifiquen en la tabla.&lt;br /&gt;
&lt;br /&gt;
Con Flashback Query, pude volverse atrás la información a nivel de fila mediante 2 métodos:&lt;br /&gt;
# Usando [[Oracle Flashback Query]] y cursores&lt;br /&gt;
# Usando [[Oracle Flashback Version Query]] y Oracle Flashback Transaction Query.&lt;br /&gt;
&lt;br /&gt;
=Ver también=&lt;br /&gt;
* [[Oracle Flashback Technology]]&lt;/div&gt;</summary>
		<author><name>201.251.185.130</name></author>	</entry>

	</feed>