Adsense

Mostrando entradas con la etiqueta sql. Mostrar todas las entradas
Mostrando entradas con la etiqueta sql. Mostrar todas las entradas

martes, 17 de marzo de 2015

Secuencias en Postgresql

Honestamente no se si sea una buena idea eso de las secuencias en Postgresql. Me han dado varios dolores de cabeza, probablemente sea por una mala implementación y escazos conocimientos de mi parte.

Crear una secuencia en Postgresql que comience con 1

CREATE SEQUENCE esquema.nombresecuencia START 1;


Consultar el valor de una secuencia en Postgresql

select nextval('secuencia');
SELECT last_value FROM i_articulo_idarticulo_seq;


Cambiar el valor de una secuencia en Postgresql

select setval('secuencia', 65,false);

Obtener un listado de las secuencias en Postgresql

SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';


Desde 8.4 puedes usar:

SELECT * FROM information_schema.sequences order by sequence_schema;



lunes, 16 de marzo de 2015

902 unavailable database Crear base de datos en firebird en Windows 8

Ayer estuve tratando de crear una base de datos en Firebird 1.5 bajo Windows 8 64 bits. Pensaba que una falla de conpatibilidad de este viejo manejador hacía que el comando:

SQL>CREATE DATABASE 'C:\data\test.fdb' page_size 8192
CON>user 'SYSDBA' password 'masterkey';

retornara "unavailable database"

Pero no era ninguna falla de compatibilidad...

Abra el isql y en vez de colocar solamente la ruta, intenta colocar localhost

SQL>CREATE DATABASE 'localhost:C:\data\test.fdb' page_size 8192
CON>user 'SYSDBA' password 'masterkey';

Y listo puede crear, hacer sus consultas... siempre que indiques el servidor.

Bueno, eso me funcionó a mi. Fue probado el procedimiento en windows 7 64 bits y Windows 8.1

miércoles, 27 de febrero de 2013

Recuperar Base de Datos Oracle desde archivos DBF


Es posible recuperar una Base de datos Oracle a partir de los archivos DBF que almacena. Yo lo hice y no se nada de base de datos. Debe instalar un oracle en buen estado y reemplazar por los archivos DBF que desea rescatar. También hay que buscar la manera que la

Abra el Sql Plus e ingrese:
SQL>conn / as sysdba
Esto lo conecta a la db
luego debe apagar la base de datos escribiendo el comando:
SQL>shutdown immediate

Es en este momento en que debe reemplazar los DBF originales por lo sque desea rescatar (antes no)

luego escriba en Sql Plus:
startup mount
Después
recover database until cancel;
Y si los dbf se encuentran corrompidos como un gobierno suramericano no va a servir coherentemente las cosas, por ello deberá aplicar el siguiente comando:
SQL>ALTER SYSTEM SET "_allow_resetlogs_corruption"= TRUE SCOPE = SPFILE;
Después aplica:
SQL>alter database open resetlogs;
Luego de eso para arrancar la base de datos se deben usar los siguientes comandos:

SQL>conn / as sysdba;
SQL>startup force;

Y les cuento, la base de datos arrancaba y al rato se caía. Pero cada vez que levantaba iba rescatando algo de información de una de las tablas. Para levantar usaba conn y startup cada vez (abria una instancia nueva de Sql Plus) El caso es que levantaba la base de datos Oracle por cada tabla que iba recuperando. El caso es que llegó un instante en que volví a levantar la base de datos y adivinen NO SE VOLVIÓ A CAER. Momento perfecto que aproveché para hacer un respaldo full y restaurar mi data.

martes, 5 de agosto de 2008

Insertar en un dataset tipificado Visual Studio .net (c#)

DataSetPrueba1 xt = new DataSetPrueba1();
DataSetPrueba1.TABLARow x = xt.TABLA.NewTABLARow();
Aplicacion.DataSetPrueba1TableAdapters.TABLATableAdapter = new=Aplicacion.DataSetPrueba1TableAdapters.TABLATableAdaptert();
xt.TABLA.Rows.Add(x);
ta.Update(xt.TABLA);




martes, 22 de enero de 2008

Actualizar Indices para optimizar el Tunning de Firebird SQL

Revisando sobre tunning de Firebird SQL encontre un procedimiento almacenado que actualiza los indices. Esto hace mucho bien a las tablitas y velocidad de consultas (en teoría)


SET TERM ^ ;

CREATE PROCEDURE MAINTENANCE_SELECTIVITY
AS
DECLARE VARIABLE S VARCHAR(200);
BEGIN
FOR select RDB$INDEX_NAME FROM RDB$INDICES INTO :S DO
BEGIN
S = 'SET statistics INDEX ' || s || ';';
EXECUTE STATEMENT :s;
END
SUSPEND;
END
^
SET TERM ; ^

Tomado de: http://www.dotnetfirebird.org/blog/2005/03/improving-query-performance-through.html

jueves, 3 de enero de 2008

Calcular las fechas del carnaval

La fecha del carnaval tiene una relación directa con la fecha de la Semana Santa. Martes de Carnaval es el día anterior a Miércoles de ceniza y el sábado de carnaval que es cuando se celebra en la mayoría de las ciudades es el sábado anterior al Miércoles de ceniza. Miércoles de ceniza es el día de comienzo de la Cuaresma y es 40 días antes que el Domingo de Ramos que es el domingo anterior al Domingo de Resurrección (Semana santa).

miércoles, 2 de enero de 2008

Firebird Date Functions Extraer año, mes, dia, de campo date (ej)

Data copiada y pegada de aquí. La guarde porque me es info util y si se borra la pagina se pierde.Nada es mio y tiene derechos de: Copyright © 2002,2005 Ivan Prenosil

Descargar PDF

sábado, 29 de diciembre de 2007

Functions and querys list of Firebird 2.0 (Chuleta de Firebird)


Listado de funciones que trae Firebird 2.0 y Querys de Firebird muy útiles que me consta también pueden llegar a utilizarse (en ciertos casos) en Firebird 1.5.
Material que se le agradece con todo el corazón al personal homepage de:

Si te gusta su información puedes donarle dinero a él:
 
 
Lorenzo Alberton's wishlist on Amazon.com 
Lorenzo Alberton's wishlist on Amazon.co.uk 

viernes, 7 de diciembre de 2007

Obtener tipo de dato de campos con firebird

ASI

SELECT a.RDB$RELATION_NAME, b.RDB$FIELD_NAME, b.RDB$FIELD_ID, d.RDB$TYPE_NAME,
c.RDB$FIELD_LENGTH, c.RDB$FIELD_SCALE
FROM RDB$RELATIONS a
INNER JOIN RDB$RELATION_FIELDS b
ON a.RDB$RELATION_NAME = b.RDB$RELATION_NAME
INNER JOIN RDB$FIELDS c
ON b.RDB$FIELD_SOURCE = c.RDB$FIELD_NAME
INNER JOIN RDB$TYPES d
ON c.RDB$FIELD_TYPE = d.RDB$TYPE
WHERE a.RDB$SYSTEM_FLAG = 0
AND d.RDB$FIELD_NAME = 'RDB$FIELD_TYPE'
ORDER BY a.RDB$RELATION_NAME, b.RDB$FIELD_ID

jueves, 29 de noviembre de 2007

Obtener un numero de registros usando firebird

Si tienes mil registros pero solo quieres el primero... el comando es simple: 

SELECT FIRST N....

donde N puede ser 1 o la cantidad de registros que necesites.

Tambien creo que hay LAST.

En MySQL para sacar unos cuantos registros usabas al final de la consulta LIMIT N

Ya.