27/2/18

Eliminar registros duplicados

Una de las tareas típicas de nuestro día a día es eliminar registros duplicados de algunas tablas, no vamos a entrar en detalle de que produce estos errores, jejej, pero vamos a ir planteando algunas soluciones para borrar los registros y quedarnos con un único registro.


 Hoy vamos a presentar una solución:

DELETE
    FROM tabla a 
  WHERE ROWID > (SELECT MIN(ROWID) 
                                        FROM tabla b
                                      WHERE b.campo_id=a.campo_id);

De esta forma con ROWID tenemos una cadena alfanumérica que identifica de forma única cada fila, y estamos diciéndole que borre todos los registros con ROWID mayor que el menor, de esta forma solo nos quedamos con este registro que tiene el menor ROWID .

Vamos a ir añadiendo otras posibles soluciones próximamente.

1/2/18

Conectar SqlDeveloper con MySQL



Vamos a configurar sqldeveloper para poder acceder a una base de datos de MySQL.

Tenemos instalada una configuración básica de Mysql y una versión antigua de sqldeveloper.

Necesitamos descargarnos el driver  JDBC para MySQL "mysql-connector-java-5.1.45.tar.gz", esto lo podemos hacer de la página "https://dev.mysql.com/downloads/"


Una vez descargado lo descomprimimos, en nuestro caso lo hacemos en la siguiente ruta "C:\Program Files (x86)\sqldeveloper-4.0.3.16.84-x64\drivers", nos hemos creado dentro de la carpeta del developer una carpeta de drivers.

El siguiente paso es seleccionar dicho driver desde el developer, para poder configurar conexiones con MySql.


Por defecto no aparece nada:


Pulsamos sobre agregar entrada y seleccionamos nuestro drivers:


Seleccionamos y ya tenemos nuestro drivers cargado en sqldeveloper.


En estos momentos cuando queramos agregar una nueva conexión ya nos aparecerá una pestaña "MySQL"


En estos momentos ya podemos configurar nuestra conexión MySQL. 



Un saludo, gracias.

Instalar Eclipse y configurar Maven

Como yo no soy muy de java, pero me estoy adentrando en este mundillo y me cuesta mucho configurar eclipse, maven y todo lo que voy necesitando, voy a dejar por aquí los pasos que hay que seguir para su configuración.

  1. .      Descargamos eclipse de la página de eclipse “http://www.eclipse.org/downloads/”.
  2. .       Descargamos JDK e instalarlo. “http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html”.
  3. .       Instalar eclipse.
  4. .       Configurar Maven:

Aunque la versión que nos bajemos de eclipse puede traer incluido maven, es preferible descargarnos la última versión de maven, una vez descargada la descomprimimos en “C:\Program Files (x86)\” por ejemplo para que c quede más limpio.

Y creamos la variable de entorno que apunta a dicha ruta “MAVEN_HOME”


Añadimos a la variable de entorno de nuestra Path lo siguiente “%MAVEN_HOME%\bin”:


En eclipse tendremos que configurar Maven para que apunte a nuestra instalación, a la descarga que hemos realizado, para ello accedemos a las preferencias.



Nos posicionamos en Maven / Installations, aparece una por defecto.



Vamos a añadir nuestra instalación de Maven, pulsando en ADD se nos abrirá la siguiente ventana para seleccionar nuestra instalación:



Pulsamos finalizar y seleccionamos nuestra configuración Maven.


Así apuntara a la descarga que hemos realizado.

Además normalmente nos puede fallar por tema de proxy, si estamos dentro de la oficina o de algún cliente, por lo que tendremos que editar el setting xml de “C:\Program Files (x86)\apache-maven-3.5.2\conf” y añadir nuestro proxy, y apuntar a dicho fichero desde eclipse:



En estos momentos ya debería descargarnos las dependencias de Maven, de todos modos podemos comprobar que todo esta correcto desde linea de comandos.



Un saludo, gracias

20/6/17

Tomar estadísticas

   Este es un tema bastante importante para aprovechar los planes de ejecución más adecuados a cada sentencia. Realmente consiste en recopilar y actualizar el catálogo de Oracle.

Por ejemplo, podemos consultar la vista de Oracle "ALL_TABLES", si no tomamos estadísticas de la tabla, en dicha vista no aparecerán actualizados el número de registros, campo NUM_ROWS.

Podéis realizar un ejemplo, crear una tabla cualquiera e insertarle datos, buscar la tabla en dicha vista:

select * from all_tables where TABLE_NAME = 'TABLA';

Veréis como no ha actualizado dicha vista, a continuación ejecutar las estadísticas para la tabla creada:

DBMS_STATS.GATHER_TABLE_STATS( ownname => 'OWNER', tabname =>  'TABLA');

Y en este momento si que os aparecerá actualizada.

En el caso de querer tomar las estadísticas a nivel de particiones:

DBMS_STATS.GATHER_TABLE_STATS( ownname => 'OWNER', tabname =>  'TABLA', partname => 'NOMBRE_PARTICION', estimate_percent => null, granularity=> 'PARTITION', cascade => TRUE );

Un saludo, gracias.
Ejemplo de scripts para crear particiones:



Un saludo, gracias.

30/5/17

Dataframes

Los dataframes son un tipo de datos en R que sirven para almacenar datos tabulares.

Se representa como un tipo especial de lista donde cada elemento de esta tiene la misma longitud.

La forma de tabular los dataframes nos puede recordar a una matriz, pero hay que tener en cuenta que una matriz es un tipo especial de vector, tiene la limitación de que todos los tipos que se encuentran en la matriz tienen que tener el mismo tipo. En cambio en un dataframe esto no es necesario, como es una especie de lista, cada columna puede tener un tipo distinto.

En los dataframe cada columna puede tener un nombre al igual que cada renglón row.name y col.name.

¿Como podemos crear un dataframe?


  • data.frame()

  • read.csv()    De esta forma leeríamos de un fichero.
  • read.table() De esta forma leeríamos de una tabla

Algunas sentencias que nos pueden ser útiles:



Podemos poner nombres a las listas, a los vectores, a las matrices a los dataframes ...  pero este tema lo veremos en una nueva entrada próximamente.

Vectores en R

Podemos crear vectores en R de dos formas distintas, asignando directamente los valores a una variable con "c" delante o utilizando la palabra reservada vector:



Una de las diferencias es que al crearlo con la palabra reservada vecrtor, hay que indicarle el tipo de vector que va a ser y el tamaño.


Matrices

Las matrices en R no son más que un tipo de vector con un atributo especial dimensión., que indica el número de renglones (filas) y columnas.

Creación de una matriz vacía

Para crear una matriz utilizamos la palabra reservada matrix, indicamos las filas y columnas con nrow y ncol.


Para saber la dimensión de una matriz podemos utilizar dim() y sus atributos con attributes().

Hay que tener en cuenta que las matrices se rellenan por columnas y de izquierda a derecha, a diferencia de C que se hace linea a linea de izquierda a derecha. Esto es importante saberlo para cuando queramos volcar un vector a una matriz.




Existen las palabras reservadas cbind y rbind para crear una matriz partiendo de diferentes vectores, con cbind se colocará cada vector como columna y con rbind se colocara cada vector como fila.


Listas

Las listas en R son un tipo especial de vector que puede contener elementos de diferentes clases.