Documentando las tablas

A veces me es necesario documentar las tablas que una base de datos tiene. Cuando no hay nada sofisticado a la mano lo mejor es un query. Este query me ha sacado de muchos apuros.

Me da el detalle de las tablas existentes en una base de datos

select
b.name as TableName,
a.name as ColumnName,
c.name as DataType,
a.length as Length
from syscolumns a
join sysobjects b on b.id = a.id
join systypes c on c.xtype = a.xtype
where
–b.name LIKE ‘SI_CONCEPTO%’and
b.type = ‘U’
order by
b.name asc,
a.colid asc

Se puede hacer más complejo para obtener más detalle. Si alguien tiene uno a la mano que pueda compartir se los agradecería!

Funciones en SQL SERVER

septiembre 1, 2011 Deja un comentario

Hola a todos aqui les dejo un ejemplo de funcion en Sql Server
create function f_promedio
(@valor1 decimal(4,2),
@valor2 decimal(4,2)
)
returns decimal (6,2)
as
begin
declare @resultado decimal(6,2)
set @resultado=(@valor1+@valor2)/2
return @resultado
end;

Categorías:Uncategorized

Error con acentos y eÑes en PHP/MySQL (Solucionado)

Muchas veces al crear una web con PHP y MySQL, ocurre un problema al introducir y mostrar datos: estos se alteran acabando en áóñ y cosas parecidas. Cuando me pasa esto suelo empezar a toquetear cosas, cambiar charsets y traducir a ñ o á pero nada funciona. El problema es que la configuración del cotejamiento de los caracteres especiales como acentos, eñes y demás símbolos no es el mismo entre la base de datos (MySQL), el lenguaje de servidor (PHP) y el servidor (Apache).

Así que me puse a buscar y después de encontrar comentarios buenísimos de gente por los foros puedo hacer un resumen de todo lo necesario cuando nos ocurre un problema de estos (id haciendo y testeando si ya funciona todo bien paso a paso).
Guía paso a paso para solucionar el problema de los acentos y eñes

1. Al crear la base de datos MySQL, asegúrate que los campos string y demás esten en utf8_spanish_ci y el cotejamiento de las tablas en
utf_unicode_ci (más tarde en Operations > Collation de phpMyAdmin se puede cambiar)
2. Pon en el de todos los archivos HTML:

3. Y en los puramente PHP (que muestran XML, llamadas de AJAX, APIs…) pon el código:

header(“Content-Type: text/html;charset=utf-8”);

4. Al crear la conexión de PHP con MySQL, envía esta consulta justo tras la conexión:

mysql_query(“SET NAMES ‘utf8′”);

(Para MySQLi escribe $acentos = $db->query(“SET NAMES ‘utf8′”); gracias Fernando)

5. Quita el DefaultCharset del Apache o modifícalo
6. Como última y desesperada opción, quita todos los htmlentities();

Haciendo estos pasos se solucionará cualquier problema de codificación de caracteres.

Quitar caracteres como Enter y Tabulado en consulta Oracle

Varios usuarios han reportado problemas al generar un reporte, mediante una consulta SQL, donde el resultado de cada fila lo entrega en dos o más líneas. También las columnas quedan desplazadas, apareciendo filas con más columnas que las debidas.

La mayoría de las veces este problema se debe a que un dato extraído en el reporte contiene los caracteres de control Enter y/o Tabulado.

Para evitar este problema se debe de reemplazar el o los caracteres de control por un espacio o cualquier otro carácter (puede ser incluso carácter nulo).

El Enter está formado por un salto de línea (carácter 13) y un retorno de carro (carácter 10). Para quitarlo se debe de reemplazar esta secuencia de caracteres por un espacio o cualquier texto que se desee.

El Tabulado es representado con el carácter número 9, por lo que para quitarlo se reemplaza por un espacio o el carácter deseado.

Quitar caracteres de control (Enter y Tabulado) de columnas en una consulta con Oracle:

select datos_sin_problema,
replace(nombre_del_campo, chr(13)||chr(10), ' ') dato_sin_enter,
replace(nombre_del_campo, chr(9), ' ') dato_sin_tabulado,
replace(replace(nombre_del_campo,
chr(13)||chr(10), ' '), chr(9), ' ') dato_sin_enter_ni_tabulado
from nombre_de_tabla;

Desabilitar Constraint’s de una Tabla en ORACLE

ALTER TABLE TABLE disable CONSTRAINT SYS_PK CASCADE;

—- LUEGO PROCEDEMOS CON EL TRUNCATE TABLE———–

TRUNCATE TABLE TABLE DROP STORAGE;

Seguridad de Aplicaciones WEB

Envio de correo desde SQL SERVER

declare @body1 varchar(100)
set @body1 = ‘Servidor: ‘+@@servername+ ‘. ENVIO DE CORREO DESDE SQL SERVER:’
EXEC msdb.dbo.sp_send_dbmail
@profile_name = ‘dbo’,
@recipients=’wjave@satt.gob.pe’,
@subject = ‘Envio de Correo desde SQL SERVER’,
@body = @body1;