Vous êtes sur la page 1sur 6

PSEUDOCOLUMNAS DISPONIBLES EN ORACLE

Presentado por:
JAVIER YAQUENO

Presentado a:
MIGUEL TOVAR TORRES.

INSTITUCIN UNIVERSITARIA CESMAG


FACULTAD DE INGENIERA
PROGRAMA DE INGENIERA DE SISTEMAS
SAN JUAN DE PASTO
2016

Un pseudocolumna es un valor asignado Oracle (pseudo-campo) se utiliza en el


mismo contexto que una base de datos Oracle columna, pero no se almacena en el
disco. SQL y PL / SQL reconoce la siguiente pseudocolumnas SQL, que devuelven
los elementos de datos especficos: SYSDATE, SYSTIMESTAMP, ROWID ,
ROWNUM , UID , USUARIO , NIVEL, CURRVAL, NEXTVAL, ora_rowscn, etc.
Pseudocolumnas columnas no son reales en una mesa, pero se comportan como
columnas. Por ejemplo, puede seleccionar valores de una pseudocolumna. Sin
embargo, no se puede insertar en, actualizar o borrar de una pseudocolumna.
Tambin sealan que pseudocolumnas se permiten en las instrucciones SQL, pero
no en las declaraciones de procedimiento.
Pseudocolumnas de consultas Jerrquicas
CONNECT_BY_ISCYCLE devuelve 1 si el registro actual tiene un hijo que tambin
es su padre, en otro caso devuelve 0.
Se puede utilizar la pseudocolumna CONNECT_BY_ISCYCLE solo si se ha
utilizado el parmetro NOCYCLE en la clusula CONNECT BY. NOCYCLE habilita
a Oracle a devolver los resultados de una query que de otro modo fallara debido a
un bucle infinito en los datos de la sentencia CONNECT BY.
CONNECT_BY_ISLEAF devuelve 1 si el registro actual es una hoja (leaf) de un
rbol definido por la condicin CONNECT BY, en otro caso devuelve 0.
Esto nos permite saber cundo un registro puede ser ampliado a otro registro hijo
de la jerarqua.
El siguiente ejemplo nos muestra los tres primeros niveles de un rbol de la tabla
de empleados, indicndonos de cada registro si es una hoja mediante la columna
IsLeaf =1 o cuando tiene hijos mediante la columna IsLeaf=0.
SELECT
ename Employee
,CONNECT_BY_ISLEAF IsLeaf
,LEVEL
,SYS_CONNECT_BY_PATH(ename, '/') Path
FROM
scott.emp
WHERE
level <= 3

--AND deptno = 10
START WITH
ename = 'KING'
CONNECT BY PRIOR
empno = MGR AND LEVEL <= 4;
Otra consulta distinta donde se ve mejor el rbol recorrido:
SELECT
Empno
,ename
,mgr
,LPAD(' ',10*LEVEL)||level||'. '||empno
,LPAD(' ',10*LEVEL)||level||'. '||ename
,SYS_CONNECT_BY_PATH(ename, '/')
FROM scott.emp
start with ename='KING'
CONNECT BY
PRIOR empno = mgr;

LEVEL
Para cada registro devuelto por la consulta jerrquica la pseudocolumna LEVEL
devuelve 1 para la raz (root), 2 para los hijos de la raz (root) y as sucesivamente.
El registro raz es el ms alto de un rbol invertido. Un registro hijo es cualquiera
que no sea root. Un registro padre es el que posee algn registro hijo. Un registro
hoja (leaf) es aquel que no tiene hijos.
La siguiente figura muestra los nodos de un rbol invertido con sus tres primeros
niveles.

Para definir una consulta de tipo jerrquica se deben utilizar las clausulas START
WITH y CONNECT BY.

PSEUDOCOLUMNAS DE SECUENCIA
Una secuencia es un objeto de base de datos que genera una secuencia de valores
nicos. Estos valores se utilizan habitualmente en las claves nicas y primarias.
CURRVAL
Devuelve el valor actual de una secuencia.
NEXTVAL
Devuelve el siguiente valor de una secuencia.
Ambas se deben cualificar con el nombre de la secuencia para utilizarlas en una
consulta:
secuencia.CURRVAL, secuencia.NEXTVAL.

PSEUDOCOLUMNAS DE CONSULTAS DE VERSION


Seguimiento de cambios de datos
Puede suceder que, de algn modo, haya datos en la tabla que se hayan cambiado
incorrectamente. Para investigar esto, puede utilizar varias consultas de flashback
para ver los datos de filas en puntos concretos en el tiempo. Lo que es ms eficaz,
puede utilizar la funcin Consulta de Versiones de Flashback para ver todos los
cambios efectuados en una fila.

Durante un perodo de tiempo. Esta funcin le permite agregar una clusula


VERSIONS a una sentencia SELECT que especifique un SCN o rango de registro
de hora en el que desee ver cambios en los valores de fila. La consulta tambin
puede devolver metadatos asociados como, por ejemplo, la transaccin
responsable del cambio.
Puede utilizar una consulta en una tabla con una clusula VERSIONS para producir
todas las versiones de todas las filas que existen o que hayan existido entre el
momento en que se emiti la consulta y los segundos undo_retention anteriores al
momento actual. undo_retention es un parmetro de inicializacin de ajuste
automtico. Una consulta que incluye una clusula VERSIONS se conoce como
consulta de versiones. Los resultados de una consulta de versiones se comportan
como si se hubiera aplicado la clusula WHERE a las versiones de las filas. La
consulta de versiones devuelve versiones de las filas slo en transacciones.
La clusula VERSIONS es una extensin SQL nicamente para consultas. Puede
tener operaciones DML y DDL que utilicen una clusula VERSIONS dentro de las
subconsultas. La consulta de versiones recupera todas las versiones validadas de
las filas seleccionadas. Los cambios realizados por la transaccin activa actual no
se devuelven. La consulta de versiones recupera todas las encarnaciones de las
filas. Esto significa en esencia que las versiones devueltas incluyen las versiones
suprimidas y subsiguientes reinsertadas de las filas.
Las pseudocolumnas de versin son vlidas solamente en consultas Flashback de
tipo versin.
Son las siguientes:
VERSIONS_STARTTIME
Devuelve el timestamp de la primera versin de los registros devueltos en una
consulta.
VERSIONS_STARTSCN
Devuelve el SCN de la primera versin de los registros devueltos en una consulta.
SCN(system change number): es un dato que define la versin confirmada de la BD
en este instante de tiempo. Cuando una transaccin es confirmada, se le asigna un
SCN que la identifica unvocamente. Los ficheros redo log son marcados con dos
SCN. Cuando se abre un nuevo fichero redo log se le marca con un SCN, low SCN,
que es uno ms que el SCN mayor del anterior fichero redo log; y su high SCN es
puesto a infinito. Los SCN tambin se asocian al fichero de control, ya que cuando
se para una BD, un tablespace o fichero de datos, se almacena para cada fichero
de datos su stop SCN en el fichero de control.

VERSIONS_ENDTIME
Devuelve el timestamp de la ltima versin de los registros devueltos en una
consulta.
VERSIONS_ENDSCN
Devuelve el SCN de la ltima versin de los registros devueltos en una consulta.
VERSIONS_XID
Por cada versin de cada registro, devuelve el ID de la transaccin (un nmero
RAW) de la transaccin que cre aquella versin de registro.
VERSIONS_OPERATION
Por cada versin de cada registro, devuelve un carcter nico representando la
operacin que causo la versin del registro. Los valores devueltos son I (para una
operacin de insercin/Insert), U (para una operacin de modificacin/Update) o D
(para una operacin de borrado/Delete).

Vous aimerez peut-être aussi