Oracle

El error ORA-30926 como resultado de una operación Merge

3.333335

El error ORA-30926 suele producirse cuando se realizan operaciones Merge, y lo normal es que nos deje algo descolocados, ya que la descripción del mismo no da demasiada información sobre lo que está pasando:
ORA-30926: unable to get a stable set of rows in the source tables.

Normalmente este error se produce cuando en la operación Merge a una fila destino que hay que actualizar le corresponden más de una fila en la tabla origen. Como el motor no sabe qué registro escoger devuelve un error. Es un problema de duplicidad en la tabla origen.

Ejemplo:

Vistas materializadas de Oracle para optimizar un Datawarehouse

4.5

Como las cargas de un Data warehouse se realizan de manera periódica, y además es habitual la creación de tablas agregadas para mejorar la eficiencia y tiempo de respuesta de nuestros informes, un recurso de optimización física que puede aportar grandes mejoras es la utilización de vistas materializadas.

La vista materializada no es más que una vista, definida con una sentencia SQL, de la que además de almacenar su definición, se almacenan los datos que retorna, realizando una carga inicial y después cada cierto tiempo un refresco de los mismos.

Así, si tenemos un Datawarehouse que se actualiza diariamente, podríamos utilizar vistas materializadas para ir actualizando tablas intermedias que alimenten nuestros esquemas de DWH, o directamente para implementar tablas agregadas que se refrescarán a partir de nuestras tablas base. 

La creación de este tipo de vistas no tan compleja como puede parecer, lo más importante es tener claro cada cuánto tiempo queremos actualizar la información de las vistas, y qué método de refresco utilizar.

Actualizacion para la serie CentOS 5 - CentOS 5.2

Hace unos días el equipo de CentOS anunció (nota de prensa) la actualización para la versión de la serie 5 de su distribución GNU/Linux CentOS 5.2.

Las imágenes iso ya están disponibles en los espejos para su descarga, aunque si ya tenemos alguna versión anterior como la 5 o 5.1 instalada en nuestro equipo con un simple "yum -y upgrade" desde la consola será suficiente.

Esta distribución es resultado de la compilación de las fuentes de  la versión Red Hat Enterprise Linux 5.2, es 100% compatible con sus  binarios y con los productos certificados para la misma como oracle. Recordad que oracle eligió Red Hat Enterprise para crear su "Oracle Unbreakable Linux".

Para los que no conozcan esta distribución pueden documentarse un poco en wikipedia y como no, es su página CentOS o en la página de RedHat.

Oracle SQL Developer

3

Oracle SQL Developer es la herramienta gráfica gratuita que proporciona Oracle para que no sea necesario utilizar herramientas de terceros (como el conocido TOAD, o el PL/SQL Developer) para desarrollar, o simplemente para ejecutar consultas o scripts SQL, tanto DML como DDL, sobre bases de datos Oracle.

La apariencia y funcionalidad es similar a la de otras herramientas de este tipo, por lo que es una buena opción si no tenemos especial predilección por otras herramientas.

Además en las últimas versiones ha incorporado mejoras como permitir conectar con bases de datos no Oracle, como SQLServer, MySQL o Access. La conexión con MySQL o SQLServer se realiza a través de JDBC, y de manera bastante sencilla. Una vez establecida la conexión se pueden explorar los objetos de las bases de datos como si se tratara de una de Oracle, y ejecutar sobre ellas sentencias SQL, aunque en cuanto a funcionalidades más avanzadas como la creación de estructuras este tipo de conexión estará mucho más limitada.

Consulta de contraseñas de usuario de Oracle

4

Por obvias razones de seguridad no se puede consultar en claro la contraseña de los usuarios de la base de datos, pero un usuario administrador como SYSTEM sí que tiene privilegios para consultar el password encriptado:

SQL> select password from dba_users where username='SCOTT';
PASSWORD
-----------------------------
F894844C34402B67

La utilidad de esto está en que lo mismo que nos retorna la SELECT se puede utilizar en una sentencia de modificación de la contraseña;

SQL> alter user scott identified by values 'F894844C34402B67';

Con esto no hemos hecho nada, ya que le hemos asignado a SCOTT la misma contraseña que tenía (TIGER), pero si cambiamos la contraseña:

SQL> alter user scott identified by nuevacontraseña;
SQL> connect scott/nuevacontraseña
Connected.

Y ahora queremos volver a ponerle la contraseña inicial:

SQL> connect system/dbapwd
Connected.
SQL> alter user scott identified by values 'F894844C34402B67';
User altered.

SQL> connect scott/tiger
Connected.

Distribuir contenido