Base de datos

Sistemas de gestión de Bases de datos y almacenamiento

Cómo evitar errores en SQL Server al concatenar campos con valores numéricos

cadena rota (concatenar en SQL)El operador para concatenar en SQL Server es '+', pero que este operador sirva también para sumar puede generar errores.

La solución es bastante simple, si lo que se quiere es concatenar, hay que convertir a cadena cualquier campo de tipo numérico que intervenga en la concatenación:
SELECT strNombre + ' tiene ' + cast(intEdad as varchar) + ' años'  FROM TablaEmpleados

Tips para realizar UPSERTs o updates con insert en SQL Server

Merge SQL

En muchas ocasiones, especialmente en procesos ETL o de carga de datos para un data warehouse, por ejemplo, interesa hacer en una sola sentencia o en un solo paso la comprobación de si un registro existe, y si existe actualizarlo, y si no insertarlo. A esta combinación se le ha apodado UPSERT, aunque en SQL existe una sentencia específica para hacerlo, que es MERGE.

SSRS: Suscripciones controladas por datos en modo integrado con Sharepoint Services

SSRS Agregar suscripción controlada por datosSuele necesitarse en entornos empresariales la entrega de informes que se generen de forma automática y que se tengan que entregar por correo o ubicarse en directorios compartidos. Reporting Services lo permite por ejemplo en el modo integrado con Sharepoint Services 3.0.Actualmente existen dos tipos de suscripción: la normal y la controlada por datos:

  • Suscripción normal: Por decirlo de alguna manera es una suscripción estática. 
  • Suscripción controlada por datos: Es algo más completa que la anterior y permite pasar parámetros al informe en cuestión..

SSRS: Estadísticas de uso, rendimiento de la ejecución de informes y log de errores de reporting services

Por defecto cuando pensamos en el rendimiento de la ejecución de informes en reporting services lo primero que nos viene a la cabeza es el último informe que hemos creado. Se supone que antes de subirlo al portal de informes se supone que hemos probado en el entorno de test, con un volumen de datos similar y lo hemos validado a nivel lógico de datos. En términos de rendimiento es obligatorio , al menos para mi, controlar la ejecución de la consulta y optimizarla mirando que falla en el plan de ejecución y si hace falta donde está el cuello de botella usando el Profiler.

Libro electrónico sobre fundamentos de bases de datos, aplicados sobre DB2

Portada de Database Fundamentals

Database Fundamentals es un interesante libro de la db2university de IBM, que explica los conceptos básicos sobre bases de datos, sobretodo relacionales, cuestiones de diseño lógico y físico, y cómo utilizar del lenguaje SQL para interactuar con ellas.

Es algo similar al Manual sobre bases de datos del Master de Software Libre de la UOC que tenemos publicado en Dataprix, sólo que en lugar de orientar las prácticas hacia bases de datos open source como MySQL oPostgreSQL, se utiliza IBM DB2.

Cómo conectar desde Oracle SQL Developer con un SQL Server remoto

Firewall de WindowsHe probado a crear una conexión en SQL Developer con una base de datos SQL Server remota. Los primeros pasos para configurar Oracle SQL Developer ya están descritos en el artículo de introducción a SQL Developer, y ya había hecho alguna prueba con un SQL Server instalado en la misma máquina que SQL Developer, pero al probar a hacerlo con una BD SQLServer remota he encontrado alguna dificultad más que creo que merece la pena comentar.

Lo primero que hay que tener en cuenta es que el puerto por el que vamos a conectar con la base de datos esté abierto en el servidor remoto para la máquina donde tengamos nuestro SQL Developer..

Conectar con una base de datos MySQL remota

MySQL tiene algunas particularidades a la hora de realizar una conexión desde un cliente remoto que si no las sabemos nos pueden complicar un poco el acceso a una base de datos MySQL desde una máquina diferente a la que aloja la BD.

Con otras bases de datos, como Oracle o SQL Server, una vez que ningún firewall ni nada por el estilo nos impide acceder desde la máquina cliente a la servidora, con utilizar los datos de acceso de un usuario de base de datos normalmente ya se puede 'entrar'.

Con MySQL, aunque el acceso al puerto, normalmente el 3306, esté abierto, la base de datos puede estar configurada para no dejar pasar conexiones externas, y el resultado es el mismo que si el puerto estuviera cerrado por un firewall:

telnet mysql.dataprix.es 3306
Trying 188.166.233.199...
telnet: connect to address 188.166.233.199: Connection refused
telnet: Unable to connect to remote host

Si se obtiene este resultado conviene consultar en el servidor de MySQL el fichero 'my.cnf', ubicado normalmente en /etc en Linux, o el 'my.ini' ubicado normalmente en la raíz del directorio de datos en el que se ha instalado MySQL en sistemas Windows, y comprobar si contiene las variables bind-address o skip-networking.

DB2 University

Estimados,

en este caso quería acercarles una buena oportunidad de tomar buenos cursos de forma gratuita, además de la posibilidad de realizar test preparatorios para certificaciones.
Se trata de la web DB2University. com,  Raul Chong junto a una serie de colaboradores a creado un aula virtual en la cual existen una serie de cursos relacionados con DB2 Express-C (la versión gratis de IBM-DB2), los cursos son muy completos y se dispone del material escrito, libros (algunos están disponibles en español y otros idiomas), laboratorios, videotutoriales, etc. Cabe la pena destacar que la traducción al español está en curso. También se están creando y subiendo los cursos relacionados con Hadoop.
Saludos
Mariano

Oracle Flashback Query

Gráfico ejecución flashback query de OracleRevisamos brevemente en este post la funcionalidad flashback query que aporta el gestor de BBDD de Oracle desde su versión 9i.

Básicamente se trata de un tipo de sql de Oracle que accede a datos que existían en la base de datos en un momento anterior, pero que en el momento en el que se ejecuta la sql pueden no existir o haber sufrido modificaciones. Para ello, Oracle utiliza los datos que quedan disponibles durante un tiempo en el segmento de UNDO. Este segmento almacena los datos anteriores a una serie de modificaciones. Se utiliza para asegurar la consistencia en la lectura de una consulta previa a la confirmación de las modificaciones (commit) y pueden ser utilizados en una posible recuperación (rollback).