1 0 Tag Archives: Bases de Datos
post icon

Enviar ParamArray a un Stored Procedure en Oracle

Hace poco vimos como enviar una lista de valores a un Stored Procedure en SQL Server, en ésta ocasión veremos como hacerlo en Oracle. Este motor tiene soporte para esto hace mucho más tiempo y se lo puede implementar de varias maneras, pero veremos la más sencilla y útil en la mayoría de los casos.

El primer paso que debemos hacer es crear un tipo de datos personalizado,de tipo Array, eso lo logramos de esta manera:
(Continuar Leyendo sobre Enviar ParamArray a un Stored Procedure en Oracle)

post icon

Convertir filas en columnas en PostgreSQL con función de agregado

Lo común es ver la implementación de PIVOT o CROSSTABLES a la hora de pasar las filas a columnas, pero hay casos en donde se necesita algo más, ir concatenando los valores en una sola columna.

Este tipo de implementación no es común, pero puede que por alguna extraña regla de negocios lo necesites implementar. En cada motor existe una manera de implementarla, además que existen varias formas.

La manera más optima que he visto hasta (Continuar Leyendo sobre Convertir filas en columnas en PostgreSQL con función de agregado)

post icon

Enviar ParamArray a un Stored Procedure en SQL Server

Una de las características que siempre consideré necesaria en versiones anteriores a SQL Server 2008 y otros motores comerciales era la capacidad de recibir una colección de datos como parámetro INPUT, así como manejan desde hace bastante tiempo Oracle y PostgreSQL.

El título que he puesto es algo engañoso, pero lo redacté así para llegar con mayor facilidad desde los buscadores. La verdad no existe un tipo de dato Array o Collection dentro de SQL Server hasta hoy día, pero si es posible enviar N valores de una sola vez, incluso mejora conceptualmente al típico paramArray porque al ser un tipo de tabla, (Continuar Leyendo sobre Enviar ParamArray a un Stored Procedure en SQL Server)

post icon

Como hacer un SELECT * FROM EXECUTE STORED_PROCEDURE en SQL Server

Una de las cosas más buscadas sobre procedimientos almacenados en SQL Server que he visto, es como hacer un select de la misma y volver a aplicar filtros o unirlas con otras tablas en una query. Y a diferencia de algunos motores que permiten hacer algo parecido a la sintaxis que lleva por titulo este post, en SQL Server no se puede hacer de dicha forma.

Para lograr algo parecido a eso, podemos valernos de varias técnicas, cada una con pros y contras. (Continuar Leyendo sobre Como hacer un SELECT * FROM EXECUTE STORED_PROCEDURE en SQL Server)

post icon

Encriptar contraseñas en SQL Server

Para muchas cosas podriamos necesitar encriptar datos dentro de la base de datos, y uno de los usos más comunes es para almacenar contraseñas. SQL Server desde versiones antiguas soportaba ya esta función integrada.

Anteriormente podiamos encriptar y desencriptar con las funciones públicas PWDENCRYPT y PWDCOMPARE, incluso hasta hoy día podemos utilizar éstas funciones aunque no les recomiendo (Continuar Leyendo sobre Encriptar contraseñas en SQL Server)

post icon

Solucionar error ALTER AUTHORIZATION para crear diagramas en SQL Server

Cuando se restauraciones de bases de datos suele ocurrir que no se puede crear diagramas (DER) de la misma en SQL Server. El problema es que no tiene asignado correctamente el usuario dueño (owner) de esa BD.

Los objetos de soporte del diagrama de base de datos no se pueden instalar. Esta base de datos carece de propietario válido. Para continuar, primero use la página Archivos del diálogo Propiedades de la base de datos o la instrucción ALTER AUTHORIZATION para establecer como propietario de la base de datos un inicio de sesión válido y después agregue los objetos de soporte del diagrama de base de datos. (Continuar Leyendo sobre Solucionar error ALTER AUTHORIZATION para crear diagramas en SQL Server)

post icon

Clausula IN vs BETWEEN AND [SQL Tunning]

Para comprender éste articulo recomiendo que haga una lectura introductoria sobre la interpretación de los planes de ejecución en SQL Server.

Lo que demostraremos será la ventaja en rendimiento del BETWEEN AND sobre la cláusula IN, pero sólo en el contexto de valores numericos correlativos, ya que si es de otro tipo de dato o no son correlativos no aplicará este concepto.

Para explicar vamos a crear un ejemplo sencillo que demostrará lo expuesto, para ello vamos a valernos de la base de datos AdventureWorks2008R2, aquí donde conseguir e instalar. (Continuar Leyendo sobre Clausula IN vs BETWEEN AND [SQL Tunning])

post icon

Como borrar o truncar todos los datos de una Base de Datos

Hoy foreando un poco por el social MSDN vi un post muy útil compartido por Luis para “reiniciar” o vaciar totalmente una base de datos con muy pocas líneas de código, donde simplemente aporte una pequeña línea.

En resumen lo que el script hace es desactivar todos los constraint y triggers, luego intentar truncar todas las tablas y con las que falle procederá a eliminar todas las filas (Continuar Leyendo sobre Como borrar o truncar todos los datos de una Base de Datos)

post icon

Obtener la última Query ejecutada basada en el SPID con T-SQL

Son varios los motivos por el cual podríamos necesitar conocer que querys se estan ejecutando contra nuestro servidor de SQL Server, desde hacer seguimiendo de los usuarios, detección de cuellos de botellas, depuración de errores, etc. Sin importar cual fuere el motivo ésto podemos lograrlo de varias maneras, en donde expondré 2 de ellas.

Lo único que necesitamos es conocer el PID (ID del proceso) que vamos a consultar, en caso que no lo sepamos podemos revisarlas con

sp_who2; 

La primer manera (Continuar Leyendo sobre Obtener la última Query ejecutada basada en el SPID con T-SQL)

post icon

Optimizar la Memoria RAM en SQL Server de 32 y 64 bits [SQL Tunning]

Ya es sabido por todos que los sistemas operativos con arquitectura de 32bits, puede sólo utilizar poco más de 3GB de RAM lo que hace un poco frustrante la experiencia cuando tienes un servidor con mucha memoria RAM y no la puedes usar toda.

Imagina tener instalado 128 GB de RAM y no puedas utilizar practicamente 124GB por culpa de la arquitectura de 32bits. Tambien podría pasar esto si el Windows es de 64bits pero SQL Server sólo de 32bits.

Para aprovechar toda la RAM vamos a configurar el servidor de manera que lo aproveche. Ésta configuración también es válida para arquitecturas de 64bits, no porque no puedan usar toda la RAM, (Continuar Leyendo sobre Optimizar la Memoria RAM en SQL Server de 32 y 64 bits [SQL Tunning])