September 2017
M T W T F S S
« Nov    
 123
45678910
11121314151617
18192021222324
252627282930  

POSTGRES

Activar postgres en Xampp 1.7.7

Ingresa al directorio donde se instalo el postgresql 9.1, ve hasta la carpeta ‘bin’ y de alli copia los siguientes archivos

– libiconv-2.dll o libiconv.dll
– libintl-8.dll
– libpq.dll
Copiar al directorio ‘C:\xampp\apache\bin’
Activar en el php.ini en la linea
;extension=php_pgsql.dll
extension=php_pgsql.dll
quitar el ‘;’ y luego reiniciar el servicio de apache.

Crear y asignar autoincremental a columna campo tipo serial

Cuando necesites crear un campo y quieres abregale un secuencial.

 

CREATE SEQUENCE esquema.tabla_tbl_id_seq;
ALTER TABLE esquema.tabla ADD COLUMN tbl_id integer;
UPDATE esquema.tabla SET tbl_id = NEXTVAL(‘esquema.tabla_tbl_id_seq’);
ALTER TABLE esquema.tabla ALTER COLUMN tbl_id SET NOT NULL;
ALTER TABLE esquema.tabla ALTER COLUMN tbl_id SET DEFAULT nextval(‘esquema.tabla_tbl_id_seq’::regclass);

Crear Tabla con función en Postgres 8.4 y 9.x

Al realizar una funcion que cree autoamticamente una tabla con parametros, me econtre con un error que decia  ERROR:  syntax error at or near “NOT”
LINE 1: CREATE TABLE  IF NOT EXISTS

Esto no funciono en un postgres 8.4 y la funcion que realice era en 9.x asi que realice dos funciones para que funcione en mi servidor de aplicaciones en 8.4

Continue reading

Particionar tabla postgres, y llenar automaticamente con registros

El siguiente script es para crear una tabla fragmentada horizontalmente y llenar automaticamente con un procedimiento almacenado.

–Postgres
create table tablanormal(llave bigint primary key, dato varchar(15));
create table tablaparticionada(llave bigint primary key, dato varchar(15));

 

–crea tablas hijas
create table tablaparticionada1(check (llave>=0 and llave<100000))inherits(tablaparticionada);
create table tablaparticionada2(check (llave>=100000 and llave<200000))inherits( tablaparticionada );
create table tablaparticionada3(check (llave>=200000 and llave<300000))inherits( tablaparticionada );
create table tablaparticionada4(check (llave>=300000 and llave<400000))inherits( tablaparticionada );
create table tablaparticionada5(check (llave>=400000 and llave<500000))inherits( tablaparticionada );
create table tablaparticionada6(check (llave>=500000 and llave<600000))inherits( tablaparticionada );
create table tablaparticionada7(check (llave>=600000 and llave<700000))inherits( tablaparticionada );
create table tablaparticionada8(check (llave>=700000 and llave<800000))inherits( tablaparticionada );
create table tablaparticionada9(check (llave>=800000 and llave<900000))inherits( tablaparticionada );
create table tablaparticionada10(check (llave>=900000 and llave<1000000))inherits( tablaparticionada );
create table tablaparticionada11(check (llave>=1000000 and llave<2000000))inherits( tablaparticionada );
create table tablaparticionada12(check (llave>=2000000 and llave<3000000))inherits( tablaparticionada );
create table tablaparticionada13(check (llave>=3000000 and llave<4000000))inherits( tablaparticionada );
create table tablaparticionada14(check (llave>=4000000 and llave<5000000))inherits( tablaparticionada );
create table tablaparticionada15(check (llave>=5000000 and llave<6000001))inherits( tablaparticionada );

–crear reglas
create or replace rule rtablaparticionada1 as
on insert to  tablaparticionada  where (llave >0 and llave<100000) do instead insert into tablaparticionada1 values(new.llave,new.dato);

create or replace rule rtablaparticionada2 as
on insert to  tablaparticionada  where (llave >=100000 and llave<200000) do instead insert into tablaparticionada2 values(new.llave,new.dato);

create or replace rule rtablaparticionada3 as
on insert to  tablaparticionada  where (llave >=200000 and llave<300000) do instead insert into tablaparticionada3 values(new.llave,new.dato);

create or replace rule rtablaparticionada4 as
on insert to  tablaparticionada  where (llave >=300000 and llave<400000) do instead insert into tablaparticionada4 values(new.llave,new.dato);

create or replace rule rtablaparticionada5 as
on insert to  tablaparticionada  where (llave >=400000 and llave<500000) do instead insert into tablaparticionada5 values(new.llave,new.dato);

create or replace rule rtablaparticionada6 as
on insert to  tablaparticionada  where (llave >=500000 and llave<600000) do instead insert into tablaparticionada6 values(new.llave,new.dato);

create or replace rule rtablaparticionada7 as
on insert to  tablaparticionada  where (llave >=600000 and llave<700000) do instead insert into tablaparticionada7 values(new.llave,new.dato);

create or replace rule rtablaparticionada8 as
on insert to  tablaparticionada  where (llave >=700000 and llave<800000) do instead insert into tablaparticionada8 values(new.llave,new.dato);

create or replace rule rtablaparticionada9 as
on insert to  tablaparticionada  where (llave >=800000 and llave<900000) do instead insert into tablaparticionada9 values(new.llave,new.dato);

create or replace rule rtablaparticionada10 as
on insert to  tablaparticionada  where (llave >=900000 and llave<1000000) do instead insert into tablaparticionada10 values(new.llave,new.dato);

create or replace rule rtablaparticionada11 as
on insert to  tablaparticionada  where (llave >=1000000 and llave<2000000) do instead insert into tablaparticionada11 values(new.llave,new.dato);

create or replace rule rtablaparticionada12 as
on insert to  tablaparticionada  where (llave >=2000000 and llave<3000000) do instead insert into tablaparticionada12 values(new.llave,new.dato);

create or replace rule rtablaparticionada13 as
on insert to  tablaparticionada  where (llave >=3000000 and llave<4000000) do instead insert into tablaparticionada13 values(new.llave,new.dato);

create or replace rule rtablaparticionada14 as
on insert to  tablaparticionada  where (llave >=4000000 and llave<5000000) do instead insert into tablaparticionada14 values(new.llave,new.dato);

create or replace rule rtablaparticionada15 as
on insert to  tablaparticionada  where (llave >=5000000 and llave<6000001) do instead insert into tablaparticionada15 values(new.llave,new.dato);

—–para actualizar

create or replace rule ruptablaparticionada1 as
on update to  tablaparticionada  where (old.llave >=0 and old.llave<100000) do instead update   tablaparticionada1  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada2 as
on update to  tablaparticionada  where (old.llave >=100000 and old.llave<200000) do instead update   tablaparticionada2  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada3 as
on update to  tablaparticionada  where (old.llave >=200000 and old.llave<300000) do instead update   tablaparticionada3  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada4 as
on update to  tablaparticionada  where (old.llave >=300000 and old.llave<400000) do instead update   tablaparticionada4  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada5 as
on update to  tablaparticionada  where (old.llave >=400000 and old.llave<500000) do instead update   tablaparticionada5  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada6 as
on update to  tablaparticionada  where (old.llave >=500000 and old.llave<600000) do instead update   tablaparticionada6  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada7 as
on update to  tablaparticionada  where (old.llave >=600000 and old.llave<700000) do instead update   tablaparticionada7  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada8 as
on update to  tablaparticionada  where (old.llave >=700000 and old.llave<800000) do instead update   tablaparticionada8  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada9 as
on update to  tablaparticionada  where (old.llave >=800000 and old.llave<900000) do instead update   tablaparticionada9  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada10 as
on update to  tablaparticionada  where (old.llave >=900000 and old.llave<1000000) do instead update   tablaparticionada10  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada11 as
on update to  tablaparticionada  where (old.llave >=1000000 and old.llave<2000000) do instead update   tablaparticionada11  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada12 as
on update to  tablaparticionada  where (old.llave >=2000000 and old.llave<3000000) do instead update   tablaparticionada12  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada13 as
on update to  tablaparticionada  where (old.llave >=3000000 and old.llave<4000000) do instead update   tablaparticionada13  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada14 as
on update to  tablaparticionada  where (old.llave >=4000000 and old.llave<5000000) do instead update   tablaparticionada14  set dato= new.dato where old.llave=llave;

create or replace rule ruptablaparticionada15 as
on update to  tablaparticionada  where (old.llave >=5000000 and old.llave<6000001) do instead update   tablaparticionada15  set dato= new.dato where old.llave=llave;

CREATE OR REPLACE FUNCTION insertatablanormal(v bigint)
RETURNS void AS
$body$
DECLARE
i bigint;
BEGIN
for i in 1..v loop
insert into tablanormal values (i, ‘1234567890abcd’);
end loop;
END;
$body$
LANGUAGE ‘plpgsql’ VOLATILE;

CREATE OR REPLACE FUNCTION insertatablaparticionada(v bigint)
RETURNS void AS
$body$
DECLARE
i bigint;
BEGIN
for i in 1..v loop
insert into tablaparticionada values (i, ‘1234567890abcd’);
end loop;
END;
$body$
LANGUAGE ‘plpgsql’ VOLATILE;

truncate tablanormal;
truncate tablaparticionada;
select insertatablanormal(1000000);
select insertatablaparticionada(1000000);
SELECT * FROM tablanormal ;
SELECT * FROM tablaparticionada;
UPDATE tablanormal SET dato = ’00ABCDEFGHI123′;
UPDATE tablaparticionada SET dato = ‘AAABCDEFG12345’;
DELETE FROM tablanormal;
DELETE FROM tablaparticionada;

Continue reading

CLAVES DE POSTGRES ORIGINAL

Para saber la clave de postgres original funciona asi
–clave original de un usuario postgres
select md5(‘clavespostgres’);

javaprograma
wine
base de datos
php
Cannot send session cache limiter – headers already sent
Warning: Cannot send session cache limiter – headers already sent (output started at /home/httpd/vhosts/martinalia.com/httpdocs/inc-public.php3(20) : eval()’d code:7) in /home/httpd/vhosts/martinalia.com/httpdocs/inc-public.php3(20) :
Read more.
Particionar tabla postgres, y llenar automaticamente con registros
El siguiente script es para crear una tabla fragmentada horizontalmente y llenar automaticamente con un procedimiento almacenado. –Postgres create table
Read more.
Particionar tabla Oracle, y llenar automaticamente con registros
Para fragmentar horizontal una tabla y llenar automaticamente . create table tablanormal ( llave integer,dato varchar(10) ); create table tablaparticionada
Read more.
Particionar tabla SQL Server, y llenar automaticamente con registros
CREATE TABLE tablanormal ( llave bigint primary key, dato varchar(15) );
Read more.
WMI error al desinstalar Sqlserver 2008
Detenga el servicio WMI: Ir a Inicio / Ejecutar, escriba cmd en la pantalla que se abre tipo: net stop
Read more.
Violation of PRIMARY KEY constraint
Violation of PRIMARY KEY constraint ‘PK_TABLA’. Cannot insert duplicate key in object ‘dbo.TABLA’. The statement has been terminated.
Read more.
INSTALAR JBOSS 7 EN CENTOS 6.4
INSTALAR JBOSS 7 REALIZAR LO SIGUIENTE ]#yum install java-1.7.0-openjdk ]#java -version ]#cd lx-jboss71-jdk7-jdbcpg84/ ]#cp /usr/share/ ]#cp jboss-as-7.1.1.Final.zip /usr/share/ ]#cd /usr/share/
Read more.
Crear Tabla con función en Postgres 8.4 y 9.x
Al realizar una funcion que cree autoamticamente una tabla con parametros, me econtre con un error que decia  ERROR:  syntax
Read more.
CONFIGURAR APACHE CON JBOSS 7.1
Observar que Jboss este añadido el apj en el Administrador, si no esta añadirlo.  Instalar apache en tu centos ]#yum
Read more.
Crear y asignar autoincremental a columna campo tipo serial
Cuando necesites crear un campo y quieres abregale un secuencial.   CREATE SEQUENCE esquema.tabla_tbl_id_seq; ALTER TABLE esquema.tabla ADD COLUMN tbl_id
Read more.