Re: [pgsql-es-ayuda] Problema con Postgrres en Consola

2016-04-12 Por tema Miguel Beltran R.
+1

El 12 de abril de 2016, 23:29, "Mario Jiménez Carrasco (isccarrasco)" <
mario.carra...@gmail.com> escribió:

> Lo que personalmente hago es…:
>
> 1.- Cambiar el pass del usuario de sistema “postgres”…  $ sudo passwd
> postgres
> 2.- Cambiarte al usuario postgres $ su postgres
> 3.- Conectarse a la base de datos. $ psql -U postgres
> 4. Cambiar el password del usuario “postgres” de la base de datos
> postgres# ALTER USER postgres WITH ENCRYPTED PASSWORD ‘mipass’;
>
> Espero te sirva, y si no es la forma correcta, ojalá alguien nos oriente a
> hacerlo de una mejor manera…
>
> Saludos...
>
>
>
> El 12/04/2016, a las 10:21 p.m., Freddy Martinez 
> escribió:
>
> Hola a todos… tengo una vm en la nube con ubuntu 14.04 a la cual recien le
> acabo de instalar postgres, pero no me puedo conectar porque no tengo
> usuario. Yo he instalado postgres pero con el instalador grafico, nunca he
> usado el del repositorio.
>
> Me pueden explicar cómoresolver esto ?
>
> saludos
>
>
> =
> "El tamaño de tus logros depende del tamaño de tus metas."
> C++ and Qt Senior Developer
> B.S. Computer Science
> Buenos Aires, Argentina
>
>
>


-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] triger NEW.record.campo

2016-04-12 Por tema Miguel Beltran R.
No te entendí.

Tu tienes su FUNCON "generica" que mandas llamar con un trigger  delcarado
por cad tabla (tablaA->trg1, tablaB->trg1, tablaN->trg1).

Dentro de tu función en base a TG_TABLE_NAME identifican de donde se mando
llamar la función, por lo que con NEW (o DELETE) identificar el REGISTRO a
tratar, pero puede ser NEW.campoTablaA.precio o NEw.campoTablaB.precio o
NEW.tablaC.descuento.

NEW es el campo recien insertado o actualizado, y dependiendo de
TG_TABLE_NAME tu saras como llamar el campo

El 12 de abril de 2016, 18:32, raul andrez gutierrez alejo <
rauland...@gmail.com> escribió:

> Hola Lista.
>
> quiero hacer un tiger genérico para evaluar en varias tablas con el mismo
> triger.
>
> yo realizo un select y obtengo el nombre de varios campos de la tabla
> filtrando con TG_TABLE_NAME.
>
> el resultado lo guardo en un record y necesito evaluar en NEW cada campo.
>
> si raise notice ' campo % ',campos.column_name; genera como salida
> "precio", necesito que obtener el valor de NEW.precio, como seria?
>
> raise notice ' valor campo % ',NEW.campos.column_name;
>
> raise notice ' valor campo % ',NEW.(campos.column_name);
>
> en php es posible este comportamiento con $$variable, en postgres hay algo
> similar?
>
> --
> Raul Andres Gutierrez Alejo
>



-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Adicionar sábados y domingos del mes en una planilla de asistencia

2016-04-07 Por tema Miguel Beltran R.
Te contesto entre lineas

2016-03-31 14:27 GMT-06:00 Linder Poclaba Lazaro :

> Buenas tardes lista, intento armar una planillas de asistencia mensual de
> personas teniendo una tabla de marcaciones del personal hice una función en
> plpgsql para obtener la asistencia, pero no he podido añadir los días
> sábados y domingos en la planilla la funcion es la siguiente:
>
> CREATE OR REPLACE FUNCTION controlasistencia.asistenciamesfuncionario(vmes
> integer, vgestion integer, vidbiometrico integer)
>   RETURNS SETOF record AS
> $BODY$
> DECLARE
>   fila RECORD; marcaciones RECORD; diatexto text; dia integer; fechasabado
> date; fechadomingo date;
>   hora time;finde boolean;
> BEGIN
>   FOR marcaciones in
> select * from crosstab('SELECT
> biofechahora::date,nivel,to_char(biofechahora, ''HH12:MI:SS'')::time FROM
> controlasistencia.biometrico where mes='||vmes||' and anio='||vgestion||'
> and codigobiometrico='||vidbiometrico,
> 'select 1 union select 2 union select 3 union select 4 union
> select 5 union select 6 union select 7 union
> select 8 union select 9 union select 10 union select 11 union
> select 12 order by 1') as (fecha date,d1 time,d2 time,d3 time,d4 time,d5
> time,
> d6 time,d7 time,d8 time,d9 time,d10 time,d11 time,d12 time)
>   LOOP
> SELECT date_part('dow',marcaciones.fecha) into dia;
>
SELECT CASE WHEN date_part('dow',marcaciones.fecha) = 0 THEN
> 'Domingo'
> WHEN date_part('dow',marcaciones.fecha) = 1 THEN 'Lunes'
> WHEN date_part('dow',marcaciones.fecha) = 2 THEN 'Martes'
> WHEN date_part('dow',marcaciones.fecha) = 3 THEN 'Miercoles'
> WHEN date_part('dow',marcaciones.fecha) = 4 THEN 'Jueves'
> WHEN date_part('dow',marcaciones.fecha) = 5 THEN 'Viernes'
> WHEN date_part('dow',marcaciones.fecha) = 6 THEN 'Sabado' END INTO
> diatexto;
>

este tipo de lineas "WHEN date_part('dow',marcaciones.fecha) = 6" deberia
ser "when dia=6" usando tu lógica


IF dia=5 THEN
>
  select marcaciones.fecha + 1 into fechasabado;
>   select marcaciones.fecha + 2 into fechadomingo;
>   select
> diatexto,marcaciones.fecha,marcaciones.d1,marcaciones.d2,marcaciones.d3,marcaciones.d4,
>
> marcaciones.d5,marcaciones.d6,marcaciones.d7,marcaciones.d8,marcaciones.d9,marcaciones.d10,
> marcaciones.d11,marcaciones.d12 UNION ALL
> select
> 'Sábado'::text,fechasabado,hora,hora,hora,hora,hora,hora,hora,hora,hora,hora,hora,hora
> UNION ALL
> select
> 'Domingo'::text,fechadomingo,hora,hora,hora,hora,hora,hora,hora,hora,hora,hora,hora,hora
> INTO fila;
>   raise notice '% fila',fila;
>

aqui tienes un raise notice, ¿en el log de postgres te aparece?


ELSE
>   SELECT
> diatexto,marcaciones.fecha,marcaciones.d1,marcaciones.d2,marcaciones.d3,marcaciones.d4,
>
> marcaciones.d5,marcaciones.d6,marcaciones.d7,marcaciones.d8,marcaciones.d9,marcaciones.d10,
> marcaciones.d11,marcaciones.d12 INTO fila;
> END IF;
> return next fila;
>   END LOOP;
> RETURN;
> END;$BODY$
>   LANGUAGE plpgsql VOLATILE
>
> En la función identifico el día viernes para poder unir con union all los
> dias sábados y domingos pero al hacer correr no me funciona
>

Por curiosidad ¿Para que quieres sabados y domingos si no tienes el campo
marcaciones?



> Lo que la función obtiene es esto:
>
> "Lunes";"2016-02-01";"08:26:00";"12:31:00";"02:35:00";"06:34:00";"";""
> "Martes";"2016-02-02";"08:35:00";"12:32:00";"02:33:00";"07:03:00";"";""
> "Miercoles";"2016-02-03";"08:32:00";"12:32:00";"02:33:00";"06:40:00";"";""
> "Jueves";"2016-02-04";"08:38:00";"12:32:00";"02:32:00";"06:45:00";"";""
> "Viernes";"2016-02-05";"08:00:00";"11:32:00";"12:24:00";"05:27:00";"";""
> "Miercoles";"2016-02-10";"08:42:00";"01:18:00";"01:52:00";"07:09:00";"";""
> "Jueves";"2016-02-11";"08:37:00";"12:35:00";"02:34:00";"06:39:00";"";""
>
> "Viernes";"2016-02-12";"08:32:00";"12:42:00";"02:33:00";"03:47:00";"05:08:00";"06:49:00"
> "Lunes";"2016-02-15";"08:34:00";"12:33:00";"02:33:00";"06:49:00";"";""
>
> "Martes";"2016-02-16";"08:40:00";"08:40:00";"12:35:00";"02:34:00";"06:35:00";""
> "Miercoles";"2016-02-17";"08:38:00";"01:00:00";"02:24:00";"06:37:00";"";""
> "Jueves";"2016-02-18";"08:32:00";"12:31:00";"02:34:00";"06:33:00";"";""
> "Viernes";"2016-02-19";"08:34:00";"12:33:00";"02:34:00";"06:37:00";"";""
> "Lunes";"2016-02-22";"08:36:00";"12:31:00";"02:32:00";"06:43:00";"";""
> "Martes";"2016-02-23";"08:35:00";"11:31:00";"02:32:00";"06:50:00";"";""
> "Miercoles";"2016-02-24";"08:33:00";"12:32:00";"02:33:00";"06:55:00";"";""
> "Jueves";"2016-02-25";"08:34:00";"12:34:00";"02:32:00";"06:32:00";"";""
> "Viernes";"2016-02-26";"08:38:00";"12:31:00";"02:34:00";"06:36:00";"";""
> "Lunes";"2016-02-29";"08:39:00";"12:31:00";"02:35:00";"06:34:00";"";""
>
> Desde ya gracias por su tiempo y cualquier consejo es bien recibido.
>
>


-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] [OT], Libro-manual sobre plpgsql y otros lenguajes procedurales

2015-03-19 Por tema Miguel Beltran R.
jaja

La letania de bene gesserit :D

Eres el Kwisatz Haderach
http://es.wikipedia.org/wiki/Bene_Gesserit#Hacia_el_Kwisatz_Haderach
Alvaro? jeje

El 16 de marzo de 2015, 10:37, Alvaro Herrera alvhe...@2ndquadrant.com
escribió:

 Javier Lugo Porras escribió:
  Hola Anthony,
  este sitio lulu.COM  no tiene un link de descargar_?
  como hago para bajarlo_? sin tener que comprar, ya que dices que es
 gratis.
  hay que dar muchos pasos...registrarse, etc...

 No conocerás la pereza.
 La pereza mata la mente.
 La pereza es la pequeña muerte que conduce a la destrucción total.
 Afrontaré mi pereza.
 Permitiré que pase sobre mí y a través de mí.
 Y cuando haya pasado, giraré mi ojo interno para escrutar su camino.
 Allá donde haya pasado la pereza ya no habrá nada.
 Sólo estaré yo.

 --
 Álvaro Herrerahttp://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Remote DBA, Training  Services

 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Como saber el nombre de la función que actualmente se está ejecutando

2014-10-29 Por tema Miguel Beltran R.
Cuando lo usas con un Trigger es posible tener el nombre del mismo.

TG_NAME

Data type name; variable that contains the name of the trigger actually
fired.


http://www.postgresql.org/docs/9.1/static/plpgsql-trigger.html

El 24 de octubre de 2014, 11:28, Arturo arturomun...@gmail.com escribió:

 Hola:
 Después de mucho tiempo escribo en la lista, necesito algo muy simple pero
 no encuentro nada en la documentación.
 Hay forma de saber el nombre de la función que se se está ejecutando ,
 dentro del mismo código de la función?

 algo al estilo de current_database()

 quisiera hacer algo de este tipo

 CREATE OR REPLACE FUNCTION man.mi_funcion (
 )
 RETURNS void AS
 $body$
 BEGIN
 insert into una_tabla(nombre_f) values(current_function);
 END;
 $body$

 donde en la tabla una_tabla quedara registrado 'man.mi_funcion'
 quería evitar colocar directamente el nombre de la función.
 saludos
 --
 *Arturo Munive*




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] relación a una tabla u a otra tabla

2014-04-22 Por tema Miguel Beltran R.
Siempre había hecho ese tipo de condiciones como Jaime.
Nunca se me había ocurrido como lo puso Alvaro.

Siempre se aprende algo nuevo


El 21 de abril de 2014, 8:42, Jaime Casanova ja...@2ndquadrant.comescribió:

 2014-04-21 8:03 GMT-05:00 Alvaro Herrera alvhe...@2ndquadrant.com:
  Jaime Casanova escribió:
 
  Finalmente, para asegurarte que este el uno o el otro agregas un
  constraint check de este modo:
  CHECK ((codigo_materia IS NOT NULL AND codigo_taller IS NULL) OR
  (codigo_materia IS NULL AND codigo_taller IS NOT NULL))
 
  creo que puedes decir lo mismo, más breve,
 
  CHECK (codigo_materia IS NULL  codigo_taller IS NULL)
 

 soy famoso por encontrar soluciones largas a problemas simples ;)

 --
 Jaime Casanova www.2ndQuadrant.com
 Professional PostgreSQL: Soporte 24x7 y capacitación
 Phone: +593 4 5107566 Cell: +593 987171157

 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] lc_monetary + Peru

2013-12-18 Por tema Miguel Beltran R.
Una es iniciarlizar el cluster de postgres donde estan tus bases de datos
con http://www.postgresql.org/docs/current/static/app-initdb.html

Otra es crear la base con el nuevo locale
http://www.postgresql.org/docs/9.0/static/app-createdb.html

Porque no es posible cambiar el LOCALE, como se menciona abajo.


22.1.3. Problems

If locale support doesn't work according to the explanation above, check
that the locale support in your operating system is correctly configured.
To check what locales are installed on your system, you can use the
command locale
-a if your operating system provides it.

Check that PostgreSQL is actually using the locale that you think it is.
The LC_COLLATE and LC_CTYPE settings are determined when a database is
created, __and cannot be changed except by creating a new database__. Other
locale settings including LC_MESSAGES and LC_MONETARY are initially
determined by the environment the server is started in, but can be changed
on-the-fly. You can check the active locale settings using the SHOW command.



El 17 de diciembre de 2013, 9:52, Ruben avila
galindoruben2...@gmail.comescribió:


 Hola buenas tardes estoy tratando de cambiar el LC_monetary= en_US.UTF8-8
 ya que me esta grabando con Dolares y en mi pais PERU uso S/ ya que esta
 grabando con $ en mi campo.


 Saludos,
 --





 Ruben Avila G.
 Ing.Sistemas
 Developer y Arquitecto Opensource
 Cel:997686960




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] variable que define idle in transaction

2013-11-12 Por tema Miguel Beltran R.
Ahora que si quieres arriesgarte a otros posibles errores por forzar el
cierre de la transacción, agrega (1) SET AUTOCOMMIT  = ON  en las opciones
del usuario que se conecta a la BD.

Pero como dicen, lo mejor es que los programadores cierran la conexión.
Esto lleva a otra pregunta ¿con qué programan? porque creo recordar que
algunos frameworks u otras herramientas abren las conexiones y activan la
transaction


(1) http://www.postgresql.org/docs/9.1/static/ecpg-sql-set-autocommit.html


El 11 de noviembre de 2013 11:51, Fernando Heviafhe...@gmail.com escribió:

 Hola José,

 Perdoname pero el planteo es absurdo. Las transacciones Idle in
 Transaction se refiere a sesiones donde se inició una transacción y en ese
 momento dado el usuario o aplicación no está ejecutando nada contra la
 base. Puede deberse a que la aplicación está a la espera de que complete
 otra operación (ej: input del usuario, consulta leeenta a otra base,
 cálculo gigantoide, etc.), pero por lo general denota un ERROR DE
 PROGRAMACION. Lo normal es buscar los datos requeridos primero, abrir luego
 la transacción, actualizar la base y cerrar la transacción. Los últimos 3
 pasos debieran ocurrir en pocos milisegundos y nunca depender de un input
 externo que pudiese potencialmente frenar esta secuencia.
 Si un idle en transaction se extiende por más de algunos breves segundos
 ya puede ser un potencial problema a observar.

 En definitiva, la pelota del problema está en cancha de los programadores.
 Esto trasciende el reiterado conflicto DBA-Programadores. La solución aquí
 es programar correctamente esa parte de la aplicación y cualquier otra
 solución por fuera sólo tiene mérito si no tienes acceso al código.

 Saludos,
 Fernando.





 2013/11/11 Gilberto Castillo gilberto.casti...@etecsa.cu



  Hola Gilberto,
 
  Los desarrolladores viven en una especie de paraiso donde no pueden ser
  interrumpidos por simples mortales..;-)
  Por eso debemos resolver el problema de conexiones idle a nivel de
  Postgre y servidor. Para desarrollar una idea necesitamos saber (si es
  posible..claro esta)  cuál es(son) la(s) variable(s) que determinan que
  un proceso en el backend pasa a ser idle transaction. Se entiende?

 Eso es sencillo desde que el aplicativo accede hacer algo en la data,
 Ver:
 select * from pg_locks --que esta boqueado
 SELECT procpid, current_query FROM pg_stat_activity --que operaciones se
 esta realizando.


 Ahora si quieres terminar las transacciones pasado cierto tiempo hay
 variables para ello, pero eso puede provocar mala cara entre esos
 inmortales :-).



 Saludos,
 Gilberto Castillo
 La Habana, Cuba

 ---
 This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE
 running at host imx3.etecsa.cu
 Visit our web-site: http://www.kaspersky.com, http://www.viruslist.com
 

 -
 Enviado a la lista de correo pgsql-es-ayuda (
 pgsql-es-ayuda@postgresql.org)
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda





-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Guardado de archivos y funciones

2013-10-04 Por tema Miguel Beltran R.
Creo que seria mejor que en excel/libreoffice configuraras una conexión a
la base  para que se conecte a la base de datos y jale la información.

En excel se llama tabla dinamica creo.


El 27 de septiembre de 2013 08:29, anthonyasotolo...@uci.cu escribió:

 Hola Jorge, no te sirve guardar el archivo en /tmp   , una vez necesité
 hacer algo similar y los guardaba ahi(/tmp), claro se guardaba con los
 derechos de postgres, pero resolví mi tema :D
 saludos

 El 27/09/13 08:26, Jorge Tornero - Listas escribió:

  CREATE FUNCTION exportax(tabla varchar,filename varchar) RETURNS void
 AS
 $BODY$
 import pandas as pd
 import os


 queryText=('select * from %s' %args[0])
 ejecucion = plpy.execute(queryText)
 tabla=[]

 for fil in ejecucion:
   tabla+=[fil]

 df=pd.DataFrame(tabla)
 df.to_excel(filename,index=**False,encoding='utf8')
 os.chmod(filename,0o666)

 plpy.notice('Se grabaron %s filas en el archivo %s'
 %(ejecucion.nrows(),filename))
 $BODY$
 LANGUAGE plpythonu;


 __**__**
 __**__
 III Escuela Internacional de Invierno en la UCI del 17 al 28 de febrero
 del 2014. Ver www.uci.cu

 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 **)
 Para cambiar tu suscripción:
 http://www.postgresql.org/**mailpref/pgsql-es-ayudahttp://www.postgresql.org/mailpref/pgsql-es-ayuda




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] existe soporte de cluster como Oracle?

2013-09-06 Por tema Miguel Beltran R.
Como dice un dicho aqui en México Mete hilo para sacar hebra, en ese
sentido fue la pregunta.


La pregunta la hice porque escuche que Oracle tiene algo llamado cluster,
pero ni idea de que se referian.
Con las respuestas de muchos descubri terminos que desconocia. (Y sigo
leyendo para entender bien a que se refieren)

Gracias a todos


El 5 de septiembre de 2013 21:02, Enrique Herrera Noya
enrique.herreran...@gmail.com escribió:

 estaras pensando en algo así?:

 nodo1  nodo2  (cluster HA)
II
V
 GFS
 postgresql

 o piensas en  pgpool-II




 El 05/09/13 17:11, Miguel Beltran R. escribió:
  Hola lista
 
  Postgresql tiene soporte de base de datos en cluster como Orale?
 
  No lo necesito pero me surgio la duda.
 
 
  Si existe cuáles han sido sus experiencias?
  Qué cantidad de datos manejan si se puede saber?
  --
  
  Lo bueno de vivir un dia mas
  es saber que nos queda un dia menos de vida


 ---
 Enrique Herrera Noya
 Asesorías y Consultorias
 ITCoop
 09-92303151
 --
 Mis Certificaciones:
 Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
 Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
 Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
 Novell Certified Linux Professional CLP 10




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] existe soporte de cluster como Oracle?

2013-09-05 Por tema Miguel Beltran R.
Hola lista

Postgresql tiene soporte de base de datos en cluster como Orale?

No lo necesito pero me surgio la duda.


Si existe cuáles han sido sus experiencias?
Qué cantidad de datos manejan si se puede saber?
-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Pasar como parametros campo y tabla a SP

2013-08-15 Por tema Miguel Beltran R.
Lo que pasa es que pusiste el valor entre comillas dobles y el sistema lo
interpreta que asi se llama la columna 02.

Me equivoque con lo que te pase antes, el problema de poner muchas comillas
simples jeje.

Intenta con:
qry  := ''insert into '' || tt || '' ( '' || ca || '','' || cb || '')
values ('' || cd || '', || ce || );'' ;

No tengo un postgresql a la mano para probar, pero lo que se busca es que
la cadena quede asi:
insert into fp ( e_codi,e_raz1) values (02, 'MI PRUEBA 4' );



El 15 de agosto de 2013 09:23, Felipe Araoz Ramosfar...@gmail.comescribió:

 Si la linea de la consulta la coloco asi;

  qry  :=  ''insert into '' || tt || '' ( '' || ca || '','' || cb || '')
 values ('' || cd || '','' || ce || '');'' ;

 me graba la función, pero la ejecuto:

 SELECT insert_dos3('fp','e_codi','e_raz1','02','MI PRUEBA 4')

 Y me sale este nuevo error.

 ERROR:  no existe la columna «02»
 LINE 1: insert into fp ( e_codi,e_raz1) values (02,MI PRUEBA 4);
 ^
 QUERY:  insert into fp ( e_codi,e_raz1) values (02,MI PRUEBA 4);
 CONTEXT:  PL/pgSQL function insert_dos3 line 10 at sentencia EXECUTE

 ** Error **

 ERROR: no existe la columna «02»
 Estado SQL:42703
 Contexto:PL/pgSQL function insert_dos3 line 10 at sentencia EXECUTE



 El 15 de agosto de 2013 09:04, Felipe Araoz Ramos far...@gmail.comescribió:

 Gracias Miguel por responder

 Ahora al cambiar la función, me sale ahora este error.

 ERROR:  error de sintaxis en o cerca de «||»
 LINE 12: ...|| '' ( '' || ca || '','' || cb || '') values (' || cd ||
 '...
   ^

 ** Error **

 ERROR: error de sintaxis en o cerca de «||»
 Estado SQL:42601
 Caracter: 336

 Alguna otra idea.

 Gracias



 El 15 de agosto de 2013 00:43, Miguel Beltran R. 
 yourpa...@gmail.comescribió:

 Claramente dice el error. estas intentando insertar la cadena MI
 PRUEBA4, pero tu no estas poniendo las comillas simples a los lados dentro
 de la función

 prueba
 qry  := ''insert into '' || tt || '' ( '' || ca || '','' || cb || '')
 values ('' || cd || '',' || ce || ');'' ;


 El 14 de agosto de 2013 21:05, Felipe Araoz Ramosfar...@gmail.comescribió:

 Amigos de la lista

 Estoy tratando de pasar el nombre de la tabla y el n ombre de los
 campos en un SP, pero tengo problemas al ejecutarlo.

 CREATE OR REPLACE FUNCTION insert_dos3(character varying, character
 varying, character varying, text, text)
   RETURNS void
 as '
  DECLARE
   qry text;
   tt alias for $1;
   ca alias for $2;
   cb alias for $3;
   cd alias for $4;
   ce alias for $5;
   begin
  qry  := ''insert into '' || tt || '' ( '' || ca || '','' || cb || '')
 values ('' || cd || '','' || ce || '');'' ;
  EXECUTE qry;
  RETURN;
 END;
 ' language 'plpgsql';


 Ejecuto de esta manera

 SELECT insert_dos3('fp','e_codi','e_raz1','03','MI PRUEBA4')

 *El error que me sale es el siguiente;*
 *ERROR:  error de sintaxis en o cerca de «PRUEBA4»*
 *LINE 1: insert into fp ( e_codi,e_raz1) values (03,MI PRUEBA4);*
 *  ^*
 *QUERY:  insert into fp ( e_codi,e_raz1) values (03,MI PRUEBA4);*
 *CONTEXT:  PL/pgSQL function insert_dos3 line 10 at sentencia EXECUTE
 *
 *
 *
 *** Error ***
 *
 *
 *ERROR: error de sintaxis en o cerca de «PRUEBA4»*
 *Estado SQL:42601*
 *Contexto:PL/pgSQL function insert_dos3 line 10 at sentencia EXECUTE*

 Los datos para el regiostro no pasan con comillas,  su ayuda

 Gracias

 *Felipe *




 --
 
 Lo bueno de vivir un dia mas
 es saber que nos queda un dia menos de vida




 --
 *Felipe Araoz Ramos*
 RPM #941990605 / 941990605
 RPC 992760385
  NXT  822*9500 / 998229500




 --
 *Felipe Araoz Ramos*
 RPM #941990605 / 941990605
 RPC 992760385
  NXT  822*9500 / 998229500




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Consulta de un valor en varios campos

2013-08-14 Por tema Miguel Beltran R.
Podrias hacer una vista donde este el UNION.

select * from tabla_valores
where camp1  in(
select val from vista_tabla_ datos
)

y la vista es igual a tu in-select


Aunque parece que algo en tu diseño no esta bien si tienes que buscar en 4
columnas diferentes ya que se va tardar 4 veces en recorrer la tabla. Y si
tienes muchos datos va a tardar mucho.


2013/8/14 Guillermo E. Villanueva guillermo...@gmail.com

 Se me ocurre:
 select * from tabla_valores
 where camp1  in(select val1 from tabla_ datos) or
  camp1  in(select val2 from tabla_ datos) or
   ...
  ...
 Pero me gusta mas la forma en que lo hiciste con union

 Guillermo Villanueva




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Pasar como parametros campo y tabla a SP

2013-08-14 Por tema Miguel Beltran R.
Claramente dice el error. estas intentando insertar la cadena MI PRUEBA4,
pero tu no estas poniendo las comillas simples a los lados dentro de la
función

prueba
qry  := ''insert into '' || tt || '' ( '' || ca || '','' || cb || '')
values ('' || cd || '',' || ce || ');'' ;


El 14 de agosto de 2013 21:05, Felipe Araoz Ramosfar...@gmail.comescribió:

 Amigos de la lista

 Estoy tratando de pasar el nombre de la tabla y el n ombre de los campos
 en un SP, pero tengo problemas al ejecutarlo.

 CREATE OR REPLACE FUNCTION insert_dos3(character varying, character
 varying, character varying, text, text)
   RETURNS void
 as '
  DECLARE
   qry text;
   tt alias for $1;
   ca alias for $2;
   cb alias for $3;
   cd alias for $4;
   ce alias for $5;
   begin
  qry  := ''insert into '' || tt || '' ( '' || ca || '','' || cb || '')
 values ('' || cd || '','' || ce || '');'' ;
  EXECUTE qry;
  RETURN;
 END;
 ' language 'plpgsql';


 Ejecuto de esta manera

 SELECT insert_dos3('fp','e_codi','e_raz1','03','MI PRUEBA4')

 *El error que me sale es el siguiente;*
 *ERROR:  error de sintaxis en o cerca de «PRUEBA4»*
 *LINE 1: insert into fp ( e_codi,e_raz1) values (03,MI PRUEBA4);*
 *  ^*
 *QUERY:  insert into fp ( e_codi,e_raz1) values (03,MI PRUEBA4);*
 *CONTEXT:  PL/pgSQL function insert_dos3 line 10 at sentencia EXECUTE*
 *
 *
 *** Error ***
 *
 *
 *ERROR: error de sintaxis en o cerca de «PRUEBA4»*
 *Estado SQL:42601*
 *Contexto:PL/pgSQL function insert_dos3 line 10 at sentencia EXECUTE*

 Los datos para el regiostro no pasan con comillas,  su ayuda

 Gracias

 *Felipe *




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] [pgsql-es-fomento] Imagen de Base de Datos

2013-05-26 Por tema Miguel Beltran R.
activa los los de ambos servidores y ve que pasa. quien se conecto y que
instrucción realizo


El 23 de mayo de 2013 21:33, Jose Manuel Piña T.
xjoseman...@gmail.comescribió:

 Un cordial saludo a la comunidad de Postresql.

 En la empresa donde laboro me he conseguido con una aplicación que esta
 trabajando originalmente en un servidor con Debian 4.0,  Postgres 8.1, y la
 Base de Datos con Latín 9, queriendo mejorar un poquito el servicio, se
 configuró otro servidor de idénticas características con diferente IP,
 Debian 6.0, Postgres 8.4 pero manteniendo Latín-9, en ambos la base de
 datos posee el mismo nombre, el caso es que hemos notado que estando los
 dos servidores encendidos  que cualquier modificación realizada en el
 segundo servidor se refleja en la base de datos del primero o viceversa, es
 decir, esta aparentemente actuando como un espejo.

 No soy un experto en Postgres, pero las preguntas son: A que se debe este
 fenómeno? Es normal? Como puedo solucionarlo? Agradezco cualquier ayuda o
 comentarios.  Gracias
 
 José Manuel Piña T.

 Nota: La información que contiene este correo es confidencial y no debe
 retransmitirse a personas no autorizadas.
 Note: The information that contains this mail is confidential and it does
 not owe  re-transmit not authorized persons.
 




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] [pgsql-es-fomento] Imagen de Base de Datos

2013-05-26 Por tema Miguel Beltran R.
perdon.
activa los logs de ambos servidores a nivel mas detallado


El 26 de mayo de 2013 19:21, Miguel Beltran R. yourpa...@gmail.comescribió:

 activa los los de ambos servidores y ve que pasa. quien se conecto y que
 instrucción realizo


 El 23 de mayo de 2013 21:33, Jose Manuel Piña T. 
 xjoseman...@gmail.comescribió:

 Un cordial saludo a la comunidad de Postresql.

 En la empresa donde laboro me he conseguido con una aplicación que esta
 trabajando originalmente en un servidor con Debian 4.0,  Postgres 8.1, y la
 Base de Datos con Latín 9, queriendo mejorar un poquito el servicio, se
 configuró otro servidor de idénticas características con diferente IP,
 Debian 6.0, Postgres 8.4 pero manteniendo Latín-9, en ambos la base de
 datos posee el mismo nombre, el caso es que hemos notado que estando los
 dos servidores encendidos  que cualquier modificación realizada en el
 segundo servidor se refleja en la base de datos del primero o viceversa, es
 decir, esta aparentemente actuando como un espejo.

 No soy un experto en Postgres, pero las preguntas son: A que se debe este
 fenómeno? Es normal? Como puedo solucionarlo? Agradezco cualquier ayuda o
 comentarios.  Gracias
 
 José Manuel Piña T.

 Nota: La información que contiene este correo es confidencial y no debe
 retransmitirse a personas no autorizadas.
 Note: The information that contains this mail is confidential and it does
 not owe  re-transmit not authorized persons.
 




 --
 
 Lo bueno de vivir un dia mas
 es saber que nos queda un dia menos de vida




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] BDs y su soporte ANSI

2013-05-20 Por tema Miguel Beltran R.
Hola lista, buen inicio de semana

¿Alguien sabe dónde se puede encontrar una comparativa de las intrucciones
ANSI y su soporte en los motores de bases de datos postgresql, oracle,
mysql, sql server, etc.?

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] BDs y su soporte ANSI

2013-05-20 Por tema Miguel Beltran R.
La mejor comparativa que encontre esta en wikipedia (1).

Pero creo que no voy a encontrar lo que quiero porque los ANSI/ISO
(92/1999/2003/2006/2008/2011) son de pago.

Preguntando de otra forma ¿qué nivel de cumplimiento tienen cada uno de
estos motores conforme a estas normas internacionales?

(1)
http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems


El 20 de mayo de 2013 09:38, Miguel Beltran R. yourpa...@gmail.comescribió:

 Hola lista, buen inicio de semana

 ¿Alguien sabe dónde se puede encontrar una comparativa de las intrucciones
 ANSI y su soporte en los motores de bases de datos postgresql, oracle,
 mysql, sql server, etc.?

 --
 
 Lo bueno de vivir un dia mas
 es saber que nos queda un dia menos de vida




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] BDs y su soporte ANSI

2013-05-20 Por tema Miguel Beltran R.
#Alvaro
La verdad solo estoy buscando porque me llamo atención que en postgresql
9.3 va a soportar LATERAL JOIN (creo que así decía) y como no conocía esa
intruscción me puse a ver que hacia, que entedi que puede llamar a una
función en un JOIN usando como parametro el valor de la otra tabla del
JOIN, y vi que en otros motores tambien se puede pero tiene otra sintaxis.

#Jaime
Vi lo que comentas, por ejemplo Postresql y Oracle tienen el mismo concepto
(o muy similiar) a tablas, esquemas y base de datos que en 1 base tienen
varios esquemas y dentro de cada uno sus tablas; pero mysql e ingres (creo)
lo hacen diferente, ellos tienen varias bases de datos y dentro tablas sin
usar esquemas.


No es de mi interes particular pero acabo de ver que Alvaro ahora trabaja
en 2ndquadrant (eso dice su correo a mi entender), una perdida muy grande
para su anterior empresa (enterprisedb) porque es una persona muy conocida
en esta lista y me imagino que debia de jalar muchos clientes.
Felicidades a 2ndQuadrant por tener a dos de las personas mas amables,
conocedoras de su trabajo y que apoyan sin pedir nada a cambio en esta
lista. claro que me refieroa Jaime y Alvaro (aunque estoy seguro que en
ocasiones se desesperan jeje).


El 20 de mayo de 2013 22:16, Jaime Casanova ja...@2ndquadrant.comescribió:

 2013/5/20 Miguel Beltran R. yourpa...@gmail.com:
  Hola lista, buen inicio de semana
 
  ¿Alguien sabe dónde se puede encontrar una comparativa de las
 intrucciones
  ANSI y su soporte en los motores de bases de datos postgresql, oracle,
  mysql, sql server, etc.?
 

 Además de lo que menciona Álvaro, las comparativas pueden ser
 engañosas. Por ejemplo, una comparativa (como la que encontraste en la
 wikipedia) puede decir que Oracle soporta Outer joins al igual que
 otros motores pero si soporta Outer joins no se ajusta al estándar en
 cuanto a la sintaxis.

 --
 Jaime Casanova www.2ndQuadrant.com
 Professional PostgreSQL: Soporte 24x7 y capacitación
 Phone: +593 4 5107566 Cell: +593 987171157




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Relacionar tablas cliente y telefono

2012-11-12 Por tema Miguel Beltran R.
Nunca se me había ocurrido hacer una consulta dentro de una columna, pero
que pasa si regresa mas de 1 registro.

habra que probar

El 9 de noviembre de 2012 10:58, oscar arocha arocha.os...@gmail.comescribió:

 Saludos José, te comento que para poder visualizar la informacion de la
 manera que sedeas debes hacer una serie de subconsultas en en tu sentencia
 principal  algo asi

 SELECT A.nombre,
  (SELECT telefono FROM Telefono FROM codigo_lugar = 1 AND codigo_cliente
 = A.codigo_cliente  ) AS casa,
  (SELECT telefono FROM Telefono FROM codigo_lugar = 2 AND codigo_cliente
 = A.codigo_cliente  ) AS movil,
  (SELECT telefono FROM Telefono FROM codigo_lugar = 3 AND codigo_cliente
 = A.codigo_cliente  ) AS tbjo
 FROM cliente A

 Espero te pueda servir.


 El 9 de noviembre de 2012 12:13, José Fermín Francisco Ferreras 
 josefermi...@hotmail.com escribió:

  Buenos días!!

 Tengo 3 tablas (Cliente , Teléfono y Lugar)

 En la tabla cliente tengo 2 campos: Codigo_cliente y nombre
 En la tabla de Telefono tengo 4 campos: codigo,codigo_cliente,telefono, y
 codigo_lugar.
 En la tabla de Lugar tengo 2 campos: codigo_lugar,descripcion.

 En la tabla de cliente tengo los siguientes datos:
 *codigo_cliente   Nombre*
  1 Fermin
  2 Miguelina

 En la tabla de Lugar tengo lo siguiente:
 *Codigo_lugar  descripcion*
  1  casa
  2  movil
  3  trabajo

 En la tabla de telefono tengo lo siguiente:

 *codigo  codigo_cliente   telefono codigo_lugar*
  11 1234568 1
  21 8558544 3
  31 8745352 2
  42 3645458 3
  52 7566414 2


 Quisiera visualizar la informacion de la siguiente manera:

 *Nombre   telefono_casa  telefono_movil
 telefono_trabajo*
 Fermin   1234568 8745352
   8558544
 Miguelina 7566414
 3645458


 Se podrá mostrar la información de esta manera??









 ing. José Fermín Francisco Ferreras
 San Francisco de Macorís, Rep. Dom.




 --
 *Ing. Oscar Arocha*
 CIV: 208.476
 Linux User: 556027
 tlf: 58-416-4257379
 twitter: @ArochaOscar




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] problemas con dblink

2012-09-26 Por tema Miguel Beltran R.
2012/9/14 Juan smalltalker.marc...@gmail.com

 Gente


 Estoy tratando de implementar un trigger con dblink.
 pero no logro que se conecte.
 lo llamativo es que dice
 ERROR:  could not establish connection
 DETAIL:  could not translate host name
 pero estoy usando el addres asi:


 select dblink_connect
 ('hostaddr=192.169.10.22,port=5432,dbname=db,user=postgres,password=postgres'
 ::text );

 pero no funciona,

 datos: version de postgres 9.1
 s.o.  redhat.

 cualquier idea sera agradecida.

 saludos
  jmdc



Si usas la versión 9.1 tendrias mejor rendimiento con las nuevas funciones
de tablas foraneas

http://www.postgresql.org/docs/9.1/static/sql-createforeigntable.html
http://wiki.postgresql.org/wiki/Foreign_data_wrappers

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Uso system de CPU

2012-09-11 Por tema Miguel Beltran R.
El 11 de septiembre de 2012 04:37, Cesar Martin cmart...@gmail.comescribió:

 Buenas Miguel Angel,

 A la BBDD le hago un vaccum verbose analyze todos los dias y todos los
 mensajes son del tipo:

 *INFO:  ABdossierBB: se procesaron 924 de 924 pE1ginas, que
 contenEDan 74652 filas vigentes y 0 filas no vigentes; 3000 filas en la
 muestra, 74652 total de filas estimadas*

 Entiendo que al haber 0 filas no vigentes, no es necesario correr el full
 vacuum, es correcto?

 Cuando se bloqueaba, analizamos las consultas del pg_stat_activity, pero
 eran todas normales.
 A mi lo que me sigue sin cuadrar, es que cuando postgres ocupa la CPU, el
 tipo de carga es user, no system...

 Otra cosa que tambien he comprobado, es que sin estar en el momento
 critico con todas las cpu al 100%, la BBDD da timeouts a la hora de
 conectarse a ella, cuando deberia tener conexiones de sobra, ya que tengo
 un munin2 puesto y en ningun caso las conexiones suben de 200.

 Un saludo


Podría ser que alguna computadora se encienda a cierta hora y te haga
conflicto de IP? que el switch este fallando? puede ser problema por otro
lado. si el problema es de conexión, prueba hacer una consulta localmente
en el servidor.

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Comportamiento correcto del not in ?

2012-07-10 Por tema Miguel Beltran R.
No se porque lo hace, haria falta que hicieras un explain

Pero intenta conesta otra consulta

select *
from uad.beneficiarios as b
where
 estado_envio = 'n' and
tipo_transaccion = 'M' and
clave_beneficiario  not in (
select clavebeneficiario
from nacer.smiafiliados as s
 where b.*clavebeneficiario = s.**clavebeneficiario*
)


Re: [pgsql-es-ayuda] OT - Borrar y cargas datos cada mes

2012-04-10 Por tema Miguel Beltran R.
Gracias Gilberto, Lazaro, Alejandro  y Alvaro.

La tabla no tiene mucha importancia casi siempre, es un respaldo de un
sistema WEB que uso para validar datos con el mismo 3ro que me pasa el
respaldo. Esto es para que en caso de tener problemas de comunicación yo
pueda usar una copia local y despues cuando se restablesca la señal
enviarle al 3ro los datos que el debe tener.

@Gilberto: la tabla temporal solo me sirve en una sesión y la uso en un web
services que maneja varias conexiones.

@Lazaro: Entre mes y dos meses, dependiendo cuanto me tarde en llegar el
txt
Uso pg 8.3.10

@Alejandro: EL problema es que aunque algunos registros sean nuevos y solo
esos se inserten, de los anteriores sus datos cambiaron. Ademas creo que el
costo de la busqueda es demasiado y es mejor borrar todo e insertarlo
directo.

@Alvaro: Eso es lo que queria saber, de las desventajas no me importan
porque con la automatización lo pienso ejecutar a las 3am cuando nadie usa
el sistema. Ademas que rara vez se usa, solo cuando no tengo acceso al web
services el 3ro y que si esta actualizado al día.

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] OT - Borrar y cargas datos cada mes

2012-04-09 Por tema Miguel Beltran R.
Hola lista, perdon por el off-topic

Necesito actualizar una tabla cada mes, esta información me la proporciona
una entidad externa en un archivo de texto delimitado por pipe ( | ).
Quiero automatizar el sistema de subir la información pero tengo duda de
que metodo seria mejor.


Unos datos importantes antes:

-El archivo tiene unos 2,500,000 registros y sigue aumentando.

-Aunque en general solo va aumentando la información, tambien existen
cambios: si el registro X en la columna A tenia 123 y en la columna B tenia
ABC o sea X (123,ABC) , el siguiente mes puede que el registro X cambia
la columna B y tenga FG1 X (123, FG1); y el registro Y en la columna A
tenga 410 y en la columna B tenga ABC o sea Y (410,ABC) por eso en lugar
de buscar las diferencias mejor vuelvo a subir todo.

-La tabla en cuestión tiene indice en 2 campos de texto y 1 númerico

-No tiene claves foraneas


Los metodos que se me ocurren son:
1.- Usar el metodo de importarlo directo como tabla nueva, drop'ear la
anterior y renombar la tabla.
2.- A la tabla hacer truncate, drop, recrearla e importar los nuevos datos

Respecto al espacio, ¿cómo es mejor para no que vaya creciendo el tamaño en
disco? en este momento la tabla me mide 1.5GB
que si borro se recupere el espacio

Gracias de antemano
-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] seguridad, cifrado

2012-03-08 Por tema Miguel Beltran R.
El 7 de marzo de 2012 12:08, Fede . elcoto...@gmail.com escribió:

 hola, los molesto por lo siguiente:

 * Tengo un postgres en un linux server
 * tengo cifrado el home con lo cual los archivos con la base de datos
 estan cifrados
 * cambie la ruta del pg_hba y lo ubique en home (cifrado)

 pero se me presenta el siguiente problema
 si alguien inicia el servidor con un live cd, monta el disco, edita
 postgres.conf, gerena un pg_hba con trust y luego inicia el servidor
 pueden entrar con pgadmin desde una terminal y ver y tocar la informacion

 hay forma de que el postgres.conf se pueda poner en la carpeta cifrada ?

 gracias
 federico
 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda



Desactiva los CD y USB de la maquina, no es broma (bueno un poco)

No se que tan importante sea tu información pero si tiene tanto acceso al
servidor te deberias pregunar cómo lo hicieron.

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] transacciones dentro de una transaccion

2012-02-01 Por tema Miguel Beltran R.
El 1 de febrero de 2012 03:07, gorka gl...@cestel.es escribió:

 **
 Buenas..

 Digo lo del dblink porque por lo que he visto, si dentro de una funcion tu
 haces uso de un dblink, se establece una nueva transacción para la consulta
 que tu ejecutes por medio del dblink, pero me imagino que ese uso del
 dblink será costoso.

 Saludos


Si todo lo tienes dentro un motor de base de datos con varias bases de
datos te convendria pasar todo a UNA SOLA base de datos y separarlas por
ESQUEMAS, con eso no necesitarias dblink y creo que prodrias usar sin
problemas savepoints para hacer commit


Re: [pgsql-es-ayuda] transacciones dentro de una transaccion

2012-01-31 Por tema Miguel Beltran R.
El 31 de enero de 2012 06:41, gorka gl...@cestel.es escribió:

 Hola:

 En una aplicación en la que estoy participando estamos haciendo
 inserciones masivas de operaciones de clientes ejecutando un procedimiento
 almacenado que recorre una tabla, y para cada fila de esa tabla recorre
 otras, con el fin de insertar o actualizar en las tablas definitivas, que
 están en otro esquema, que es en el que funciona la aplicacion web.
 Pues bien, resulta que como ese proceso de recorrer varias tablas y
 actualizar o insertar en el esquema de trabajo es bastante complejo, y
 además en casos de clientes especiales, hay muchos registros de operaciones
 y la transacción de incorporación a tablas de trabajo se demora bastante en
 el tiempo, la aplicación web empieza a escribir en las mismas tablas de
 trabajo, y se producen bloqueos.
 Como solución a esto, nos proponen que cada paso del bucle, es decir, cada
 manejo de una operación sea una transacción, vamos, que quieren que se haga
 un commit dentro del procedimiento, pero evidentemente eso no se puede
 hacer.
 Sabeis si hay alguna solución a este problema, aparte de hacer uso de
 dblink, como he visto por ahi?? La solución de incorporar datos cuando no
 se esté trabajando con la aplicación no existe, porque los ficheros de los
 clientes hay que incorporarlos al sistema en cuanto llegan, y no depende de
 nosotros.

 Muchas gracias y saludos

 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 **)
 Para cambiar tu suscripción:
 http://www.postgresql.org/**mailpref/pgsql-es-ayudahttp://www.postgresql.org/mailpref/pgsql-es-ayuda



¿Todo esta en el mismo motor de base de datos pero en diferentes esquemas?
¿O porque mencionas dblink?

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] uptime

2012-01-27 Por tema Miguel Beltran R.
Parece que no, pero puesdes saber su tiempo en linux con  ps

http://singztechmusings.wordpress.com/2011/06/15/how-to-check-the-uptime-of-a-process-or-an-application-running-in-linux-machine-using-shell-script/

Ejemplo

# Get ActiveMQ PID

activemq_pid=`ps ax | grep apache-activemq | grep -v grep | awk ‘{print
$1}’`
echo $activemq_pid

# Get ActiveMQ Uptime
activemq_uptime=`ps -p



Otra que se me acaba de ocurrir es más tosca, que es con grep revisar el
log de postgres mostrando solo las lines con marca el inicio de postgres,
tienes que ver cual es el texto.


El 25 de enero de 2012 14:38, Fede . elcoto...@gmail.com escribió:

 hola, existe algun comando como uptime de linux para postgres ?
 gracias
 federico
 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Comprar Bases de datos

2011-11-30 Por tema Miguel Beltran R.
El 24 de noviembre de 2011 15:25, wrbut...@rizoma.cl escribió:

 Hola ta todos! me encuentro planificando una migración de un
 sistema que, en muy corto tiempo, ha sufrido varias modificaciones
 en la estructura de su base de datos (algunas tablas nuevas y otras
 modificadas),
 para ello estoy en la labor de generar un script que haga el trabajo,
 sin embargo, para poder desarrollarlo me hace falta ver las
 diferencias en la estructura
 de ambas bases de datos.

 Conoce alguien, alguna forma de comparar el esquema de 2 bases
 de datos y mostrar las diferencias que hay en sus tablas (y respectivos
 campos)?

 Muchas gracias!

 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda



Puedes COMPRAR la versión con soporte de varias empresas jejee

Lo siento, no me pude aguantar al ver que escribiste comprar en el asunto
del correo y en realizar es comparar jejeje :D :P

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] In Memoriam: Falleció Dennis Ritchie

2011-10-17 Por tema Miguel Beltran R.
++;

El 17 de octubre de 2011 08:57, German Salinas gs.sali...@gmail.comescribió:

 Me pliego no al recuerdo y reconocimiento a Dennis Ritchie. Un genio y
 trabajador anonimo, esquivo al aplauso y las luces. Como son los puros de
 informatica

 German Salinas.
 Preparate Berlusconi de 16 ava categoria, vamos por ti a desenmascarar tus
 crimenes!!



 El 17 de octubre de 2011 09:25, José Fermín Francisco Ferreras 
 josefermi...@hotmail.com escribió:

  Dennis Ritchie in verdadero genio!! un hombre que q con su propio
 intelecto (junto a el otro gigante: Ken Thompson) cambió verdaderamente el
 mundo!!

 Los informáticos agradecemos inmensamente los aportes de Dennis Ritchie, y
 lo honramos como se merecen los grandes!!




 ing. José Fermín Francisco Ferreras
 San Francisco de Macorís, Rep. Dom.


  CC: pgsql-es-ayuda@postgresql.org
  From: zikwa...@gmail.com
  Subject: Re: [pgsql-es-ayuda] In Memoriam: Falleció Dennis Ritchie
  Date: Fri, 14 Oct 2011 22:24:23 -0500
  To: linux...@gmail.com
 
  Desde un iPod el merecido reconocimiento al genio sobre cuyos hombros
 florecieron Apple, Microsoft y tantos mas. Un autentico filántropo cuyo
 legado es incalculable, un héroe, como casi todos lo héroes auténticos: casi
 anónimo.
  Dennis Ritchie, descanse en paz, consuelo y fortaleza para la familia.
 
  Saludos,
 
  Sergio Sanchez Rivas
  Enviado desde mi iPod
 
  El 14/10/2011, a las 12:49, Guillermo O. Burastero 
 linux...@gmail.com escribió:
 
   ref. http://es.wikipedia.org/wiki/Dennis_Ritchie
  
   El pasado 8 de octubre falleció Dennis MacAlistair Ritchie. Uno de los
   gigantes de las ciencias de la computación, coautor del sistema
   operativo Unix (con Ken Thompson) y del lenguaje de programación C
   (con Brian Kernighan).
  
   Lamento que su óbito halla pasado casi inadvertido, a diferencia del
   de Steve Jobs, cuando en mi opinión su legado a la informática fue
   muchísimo más importante y revolucionario que el que nos dejara el
   célebre empresario de la manzanita.
  
   q.e.p.d. Dennis. Todos los informáticos te debemos un agradecimiento
 eterno.
  
   #include stdio.h
  
   int main()
   {
   printf(“Hasta la vista Dennis, muchas gracias.\n”);
   return(0);
   }
  
  
   --
   Guillermo O. Burastero
   Usuario GNU/Linux #84879 - http://counter.li.org/
   Bahía Blanca, Buenos Aires, Argentina
   Tel. +54 (291) 454-6132 - Móvil [15] 574-3173
   MSN: guillermo.burast...@gmail.com
   ICQ: 97148268
   -
   Enviado a la lista de correo pgsql-es-ayuda (
 pgsql-es-ayuda@postgresql.org)
   Para cambiar tu suscripción:
   http://www.postgresql.org/mailpref/pgsql-es-ayuda
  -
  Enviado a la lista de correo pgsql-es-ayuda (
 pgsql-es-ayuda@postgresql.org)
  Para cambiar tu suscripci�n:
  http://www.postgresql.org/mailpref/pgsql-es-ayuda





-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] pg_restore con cambio de encriptación

2011-10-17 Por tema Miguel Beltran R.
El 17 de octubre de 2011 10:12, I.N.T. - Dpto. programación 
dpto.programac...@grupo-int.com escribió:

 Hola a tod@s,

 Me ha surgido el siguiente problema pero no veo cómo solucionarlo, quizás
 la respuesta esté en la lista y ya se ha respondido, pero no he sido capaz
 de encontrarlo...

 El problema es que tenemos un servidor PostgreSQL cuyas bases de datos
 están con codificación LATIN1 y SQL_ASCII, que en su momento eran perfectas
 y han funcionado muy bien.

 Tenemos que migrarlas a un nuevo servidor porque el actual se ha quedado un
 poco obsoleto, pero éste último debe estar obligatoriamente en UTF8 (todas
 las bases de datos, por cuestiones de diferentes idiomas a almacenar en
 ellas: checo, eslovaco, etc...), es decir, una encriptación universal...

 Hacemos todos los días la copia de seguridad del anterior servidor con
 pg_dump, funcionando y recuperando (pg_restore) perfectamente los datos.

 La cuestión es que pg_restore no permite recuperar esas bases de datos
 (*.backup, LATIN1 y SQL_ASCII) sobre el nuevo servidor (UTF8). Me dice que
 la encriptación es incorrecta y no me recupera ningún dato.

 He mirado los parámetros de pg_restore y no veo cómo hacerlo.

 ¿Alguien podría orientarme sobre cómo puede hacerse? La forma cutre que
 se me ocurre es volcar las tablas del viejo servidor a Access y traspasarlas
 (con Access de nuevo, obviamente) al nuevo servidor, pero aparte de que me
 llevaría bastante más tiempo y no queremos tener parado al cliente
 excesivamente, me parece una auténtica chapuza...

 Cualquier ayuda al respecto (solución, enlace a página, etc...) será
 agradecida enormemente. Hay que tener en cuenta que la recuperación tendrá
 que mantener los caracteres especiales del español (tíldes, eñes, etc...)...

 Un saludo,

 Luis

 P.D.- Si necesitais más información de los sistemas que utilizamos en cada
 servidor (codificación, versiones, etc...) os las paso
 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 **)
 Para cambiar tu suscripción:
 http://www.postgresql.org/**mailpref/pgsql-es-ayudahttp://www.postgresql.org/mailpref/pgsql-es-ayuda



Sin probar se me ocurre algo asi (sin probar):
A tu respaldo con pg_dump cambia que cree la base de datos de LATIN-1 a UTF8
(un sed te puede ayudar - sed s/LATIN-1/UTF8/g )

En lugar de usar pg_restore usa psql con una variable de entorno
ENCODING=UTF8 pgsql  archivo.sql

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Manejo de funciones

2011-10-11 Por tema Miguel Beltran R.
El 11 de octubre de 2011 09:38, manuel antonio ochoa 
manuel8aalf...@gmail.com escribió:

 Qe ta lista buenos dias o buenas tardes,


 bueno ahi les va un pregunta basica para los particupantes te esta lista ;
 el punto es que es mejor utilizar o da igual  en la siguiente  situacion:

 Tengo un agente (programa en windows)   que hace consultas a postgres por
 ejmplo un consulta la cual verifica si un campo A esta en true en caso de
 qe si me devuelve X row,  la llamaremos (getalgo(param1)) y tengo otra
 funcion que  que al campo A lo pone en false la llamaremos updatecampoA().


 En el codigo del agente  las llamadas  son :

 function x(){
 a = getalgo(param1)

 if  a!=null
  updatecampoA()

 }

 Me comentan que la mananera anterior es la mejor manera de manejar con
 subfucniones dentro del agente, yo preferiria que solo fuera un sola
 fucniones en postgres
 llamada haztodo(param1) que manda llamara las dos fucniones
 getalgo(param1) y updatecampoA() y me regresara el row   que ventajas o
 desventajas tienes esto ?



 saludos







De ventaja se me ocurre que al tener tu código en una sola función de
postgres podrias cambiar incluso tu agente de lenguaje o plataforma y no te
tendrias que preocupar por algún olvido, es decir, si por alguna razon
tienes que cambiar el updateCampoA() por updateCampoAyZ() tu no tendrias que
preocuparte de actualizar tu programa agente, solo actualizas tu haztodo()
para que llame a la nueva función.

Con esto tienes centralizado tu función.

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Ejecutar copy con stdin en vb6

2011-10-11 Por tema Miguel Beltran R.
El 11 de octubre de 2011 14:01, Mariano Reingart reing...@gmail.comescribió:

 2011/10/11 Gilberto Castillo Martínez gilberto.casti...@etecsa.cu:
 
 
  El mar, 11-10-2011 a las 19:14 +0100, Alejandro Carrillo escribió:
  http://www.postgresql.org/docs/current/interactive/sql-copy.html
 
 
  Buscar seccion stdin, eso es la abreviatura de standart in
  (http://es.wikipedia.org/wiki/Entrada_est%C3%A1ndar). Solo deja
  insertar datos de forma masiva (COPY) usando este método a usuarios
  que no son superuser.
 
  Ya recuerdo, eso alguien lo comentó por acá y se debe a problemas de
  permisos de accesos para el cliente psql o usuario postgre sobre la
  carpeta donde esta el fichero en cuestión... también debes revisar el
  ENCODING del cliente y el servidor.
 
  Voy a poster a Mariano creo el tuvo una vez un royo parecido.
 

 No use COPY, dudo que se pueda usar STDIN con ODBC ya que no es algo
 muy estandard.
 Lo mas simple sería que pongan el archivo en alguna carpeta del
 servidor y usar el COPY FROM  'ruta'

 Lo que puedo ofrecerles son scripts en Python que tengo armados, que
 se podria llamar desde visual basic para subir archivos locales (usa
 extensiones para llamar a COPY FROM STDIN).

 Otra forma forma es usar INSERT con multiples valores:

 INSERT INTO films (code, title, did, date_prod, kind) VALUES
('B6717', 'Tampopo', 110, '1985-02-10', 'Comedy'),
('HG120', 'The Dinner Game', 140, DEFAULT, 'Comedy');

 Donde ahi si se podrían usar multiples parametros (pero tiene un
 limite, segun mis pruebas, alrededor de 1000 registros, dependiendo
 del driver que usen y la cantidad de columnas)

 Igualmente COPY es muchisimo más rapido que INSERT, sobre todo para
 cientos de miles de registros o mas.

 Sds

 Mariano Reingart
 http://www.sistemasagiles.com.ar
 http://reingart.blogspot.com
 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda



Y porque no invocas al psql parametros desde vb6

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Webhosting con Postgres en chile

2011-07-29 Por tema Miguel Beltran R.
Yo estoy empezando con linode.com. Es un servidcio de *Virtual private
server (VPS)* por lo que no tiene nada al empezar, pero tu le puedes intalar
tu distribucion de linux que mejor se te haga (de las que tienen) y
configurar a tus necesidades. Es mas trabajo pero tambien mas sencilles en
el sentido que puedes instalar programas que en ocaciones no se puede en un
hosting normal.


El 22 de julio de 2011 15:26, Miguel Angel Hernandez Moreno 
miguel.hdz@gmail.com escribió:

 Trabaje hace muchos años con

 http://www.awardspace.com/

 ahora ya tiene Postgres, pero no maneje postgres, podrias intentar y
 comentarnos
 jejejejeje y ademas me sirvio mucho ese host

 El 22 de julio de 2011 15:13, Rodrigo Mercado 
 rmercado.lis...@gmail.comescribió:

  Estimados,
 Estoy buscando un buen webhosting que tenga opción de trabajar con Bases
 de datos Postgres, si alguien ha trabajado en alguno o conoce alguno bueno
 favor indicarmelo.


 Saludos,
 Rodrigo Mercado S.




 --
 ISC Miguel Angel Hernandez Moreno




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Inyecciones de código SQL

2011-06-10 Por tema Miguel Beltran R.
Esto me recuerda un exploit que casi casi me atrevo a hacerlo

http://es.xkcd.com/strips/exploits-de-una-madre/


Re: [pgsql-es-ayuda] recusive ejemplo real

2011-01-27 Por tema Miguel Beltran R.
Gracias

El 25 de enero de 2011 20:42, Carlos Beltran Villamizar 
cbeltr...@cable.net.co escribió:

 Diseños recursivos, como los de este ejemplo, son muy útiles en
 proyectos con temas organizacionales o contables. Sin embargo su manejo
 es de cuidado. Afortunadamente con recursive se pueden preparar muchos
 informes con su estructura jerárquica así:

 
 CREATE TABLE lineanegocio
 (
  id serial,
  PRIMARY KEY (id),
  nombre character varying (100) NOT NULL,
  orden integer NOT NULL,
  lineanegocio_id int,
  FOREIGN KEY (lineanegocio_id) REFERENCES lineanegocio(id),
  activ boolean DEFAULT true
 );

 --1
 INSERT INTO lineanegocio (nombre, orden) VALUES ('FINCAS', 1);
 --2
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES
 ('AGRICOLA',1, 1);
 --3
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES
 ('PECUARIA',2, 1);
 --4
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES
 ('MANGOS', 1, 2);
 --5
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES
 ('CITRICOS', 2, 2);
 --6
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES ('AVES
 DE CORRAL',1, 3);
 --7
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES ('MANGO
 TOMMY', 1, 4);
 --8
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES ('MANGO
 COMUN', 2, 4);
 --9
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES
 ('NARANJA', 1, 5);
 --10
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES
 ('LIMON', 2, 5);
 --11
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES ('CARNE
 POLLO', 1, 6);
 --12
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES ('POLLO
 VIVO', 2, 6);
 --13
 INSERT INTO lineanegocio (nombre, orden, lineanegocio_id) VALUES
 ('HUEVOS', 3, 6);
 --14
 INSERT INTO lineanegocio (nombre, orden) VALUES ('SUPERMERCADOS', 2);
 -- ...

  WITH RECURSIVE lineasnegocio (nivel, id, nombre, lineanegocio_id,
 camino) AS (
SELECT 0, padre.id, padre.nombre, padre.lineanegocio_id,
 padre.orden::text || padre.nombre::text
FROM lineanegocio AS padre
WHERE padre.lineanegocio_id IS NULL
  UNION ALL
SELECT padre.nivel + 1, hijo.id, hijo.nombre, hijo.lineanegocio_id,
   padre.camino || '.' || hijo.orden::text || hijo.nombre
FROM lineasnegocio padre
JOIN lineanegocio AS hijo ON hijo.lineanegocio_id = padre.id
  )
  SELECT rpad('', nivel * 2, '_') || nombre AS nombre_unidad_negocio, id
  FROM lineasnegocio
  ORDER BY camino;
 
 Compañeros de lista. Espero les sirva.

 Desde Bogotá. Colombia.
 Carlos Beltrán Villamizar.

 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Duda sobre time en Postgres

2010-12-16 Por tema Miguel Beltran R.
El 15 de diciembre de 2010 12:53, raul velez demoramu...@yahoo.esescribió:

 Saludos a todos, quisiera saber cuando usar time with time zone y time
 without time zone se que el primero es para incluir la zona horaria y el
 segundo no, pero en que casos podría usar cada uno??? En que casos lo
 usarían ustedes??



Desde mi punto de vista

Para un poco mas de facilidad, se usa sin zona horaria cuando:
1.- tu aplicación no lo necesita
2.- estas importando los datos y no incluye la zona horaria

Pero con respecto al punto 1, es mejor no creerlo. nunca se sabe a ciencia
cierta cuanto va a crecer tu sistema en el futuro.

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] [OT] A cubanos

2010-08-17 Por tema Miguel Beltran R.
Hola compañeros Cubanos de Postgresql

Recordando mensajes como este (1), les comento que como voy a ir de
vacaciones a Cuba el proximo fin de semana, ¿alguien necesita algun software
y quiera que se lo lleve? Claro si es que no tengo problemas para pasarlo en
el aeropuerto, que desconozco si se puede.

1 http://www.mail-archive.com/pgsql-es-ayuda@postgresql.org/msg10368.html


-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] windows active directory y postgres

2010-08-11 Por tema Miguel Beltran R.
El 11 de agosto de 2010 11:20, Suso jlcu...@terra.es escribió:

 Hola de nuevo, espero estén bien:)
 El tema es el siguiente, me han pedido que en la autentificación de
 postgres use el windows active directory y SSL..
 Uso SSL y md5 actualmente, ¿ se puede cambiar a lo que el cliente pide ?.


ActiveDirectory es un LDAP con muchas mas monerias, buscale por ahi.


Re: [pgsql-es-ayuda] indice usando un CASE (8.2)

2010-08-05 Por tema Miguel Beltran R.
Gracias a todos por sus respuestas, las voy a probar


[pgsql-es-ayuda] indice usando un CASE (8.2)

2010-08-02 Por tema Miguel Beltran R.
Hola Lista,

Tengo un servidor usando la versión 8.2, Ya se que es viejita pero no
necesito mucho, son 100,000 registros nuevos al año.

Bueno pasando al problema, quise hacer el siguiente indice pero marco error

CREATE INDEX folio_folio_num_index
  ON folio
  USING btree
  (CASE
WHEN (strpos(folio.folio::text, '-'::text) - 1)  0
THEN substr(folio.folio::text, 1, strpos(folio.folio::text,
'-'::text) - 1)::bigint
ELSE folio.folio::bigint
END );

el error fue
ERROR:  syntax error at or near CASE
LINE 8:   (CASE
   ^

** Error **

ERROR: syntax error at or near CASE
SQL state: 42601
Character: 135


¿Es posible o voy a tener que esperar al hacer mis querys?
-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Left Join

2010-06-08 Por tema Miguel Beltran R.
 select vendedor.nombre, count (ventas.id_documento)
 from vendedor left join ventas on (vendedor.id_vendedor =
 ventas.id_vendedor and
   ventas.fecha
 between '20100101' and '20100531')
 group by 1


Nunca se me habia ocurrido, ni sabia que fuera posible poner un clausula de
ese tipo dentro del ON.

Es bueno aprender algo nuevo


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Error al r ealizar una sentencia SELECT LIMIT 1 usando una conexión OD BC

2010-05-17 Por tema Miguel Beltran R.
El 17 de mayo de 2010 14:32, Roberto M. Ruiz S.
robware.r...@gmail.comescribió:

 El 17/05/2010 02:25 p.m., Jaime Casanova escribió:

  de postgres y mira que sentencia es la que te esta dando
 error... o si estas construyendo la sentencia dinamicamente fijate si
 se te escapo un WHERE porque no es posible que te de un error de
 sintaxis en o cerca de WHERE en una sentencia sin clausula WHERE:)



 La sentencia que envio la obtengo directamente del código generado y sale
 el error como lo ve lo raro es que ese código ya funciona en otro programa

 -
 Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
 )
 Para cambiar tu suscripción:
 http://www.postgresql.org/mailpref/pgsql-es-ayuda



En el ODBC tiene una opción para que en c:\ se cree un log de lo que esta
sucediendo, o en postgres puedes cambiar el nivel del log_statment para que
tambien registre los comandos



-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Zonas horarias incorrectas

2010-03-18 Por tema Miguel Beltran R.
El 17 de marzo de 2010 09:03, Edwin Quijada
listas_quij...@hotmail.comescribió:


 Hola, tengo un extrano error con respecto a las zonas horarias. estoy
 haciedno un select de una hora de estaer y me esta dando una hora menos
 ejemplo
  select now() AT TIME ZONE 'EST';

 and I get this:
 3/17/2010 9:51:37 AM y realmente deberia conseguir una hora mas porque la
 hora cambio debio ser
 3/17/2010 10:51:37 AM

 Aparentemente la zona horaria no me esta funcinoando.

 *---*
 *-Edwin Quijada
 *-Developer DataBase
 *-JQ Microsistemas
 *-Soporte PostgreSQL
 *-www.jqmicrosistemas.com
 *-809-849-8087
 *---*





 --


Creo recordar que esto se trato hace mucho y el problema es porque el
sistema operativo no estaba actualizado, que es el que indica cual es su
huso.
es linux o windows?

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Ayuda con query de intervalo de tiempo entre registro

2010-02-16 Por tema Miguel Beltran R.
Gracias a todos, por la versión de pg que uso voy a hacerlo como menciona
Silvio

El 15 de febrero de 2010 14:54, Alvaro Herrera
alvhe...@alvh.no-ip.orgescribió:

 Miguel Beltran R. escribió:
  Hola Lista
 
  Tengo unos registros con un campo datetime que representan cuando se
  insertaron
 
  ¿qué query me puede ayudar a saber el tiempo promedio entre uno y otro?
 
  Ej.
 
  valor   captura
  12010-02-15 12:00:01
  22010-02-15 12:00:03
  32010-02-15 12:00:08
 
  Entre el 1ro y 2do fueron 2 segundos y entre el 2do y 3ro fueron 5
 segundos,
  sumados son 7 segundos entre 3 registros serian un promedio de 2.33
 segundos

 La manera más limpia es con una función ventana.  Por ej.

 alvherre=# create table miguel (a serial, b timestamp default now());
 NOTICE:  CREATE TABLE creará una secuencia implícita «miguel_a_seq» para la
 columna serial «miguel.a»
 CREATE TABLE
 alvherre=# insert into miguel default values;
 INSERT 0 1
 alvherre=# insert into miguel default values;
 INSERT 0 1
 alvherre=# insert into miguel default values;
 INSERT 0 1
 alvherre=# insert into miguel default values;
 INSERT 0 1
 alvherre=# insert into miguel default values;
 INSERT 0 1
 alvherre=# insert into miguel default values;
 INSERT 0 1
 alvherre=# insert into miguel default values;
 INSERT 0 1
 alvherre=# select * from miguel;
  a | b
 ---+
  1 | 2010-02-15 17:45:34.116514
  2 | 2010-02-15 17:45:36.236193
  3 | 2010-02-15 17:45:39.316307
  4 | 2010-02-15 17:45:40.044354
  5 | 2010-02-15 17:45:43.292354
  6 | 2010-02-15 17:45:44.644171
  7 | 2010-02-15 17:45:46.204193
 (7 filas)


 alvherre=# select *, b - lag(b) over (order by b ROWS BETWEEN UNBOUNDED
 PRECEDING AND current row) from miguel;
  a | b  |?column?
 ---++-
  1 | 2010-02-15 17:45:34.116514 |
  2 | 2010-02-15 17:45:36.236193 | 00:00:02.119679
  3 | 2010-02-15 17:45:39.316307 | 00:00:03.080114
  4 | 2010-02-15 17:45:40.044354 | 00:00:00.728047
  5 | 2010-02-15 17:45:43.292354 | 00:00:03.248
  6 | 2010-02-15 17:45:44.644171 | 00:00:01.351817
  7 | 2010-02-15 17:45:46.204193 | 00:00:01.560022
 (7 filas)

 A partir de ahí puedes hacer como quieras con las diferencias entre
 valores.  Para obtener el promedio de todos esos valores; por ejemplo,

 alvherre=# select min(a), max(a), avg(dif) from (select a, b, b - lag(b)
 over (order by b ROWS BETWEEN UNBOUNDED PRECEDING AND current row ) as dif
 from miguel) foo;
  min | max |   avg
 -+-+-
   1 |   7 | 00:00:02.014613
 (1 fila)


 --
 Alvaro Herrera   Vendo parcela en Valdivia:  http://rie.cl/?a=255568
 Oh, great altar of passive entertainment, bestow upon me thy discordant
 images
 at such speed as to render linear thought impossible (Calvin a la TV)




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Ayuda con query de intervalo de tiempo entre registro

2010-02-15 Por tema Miguel Beltran R.
Hola Lista

Tengo unos registros con un campo datetime que representan cuando se
insertaron

¿qué query me puede ayudar a saber el tiempo promedio entre uno y otro?

Ej.

valor   captura
12010-02-15 12:00:01
22010-02-15 12:00:03
32010-02-15 12:00:08

Entre el 1ro y 2do fueron 2 segundos y entre el 2do y 3ro fueron 5 segundos,
sumados son 7 segundos entre 3 registros serian un promedio de 2.33 segundos

Gracias de antemano.

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Personalizar Mensajes de Exceptions

2009-09-17 Por tema Miguel Beltran R.
2009/9/16 Sergio David mr.sd...@gmail.com

 Hola gente de la lista...

 Estoy llevando a cabo un proyecto, y realizando la parte de logica de
 negocios a nivel de base de datos...

 Encontre que PostgreSQL tiene la posibilidad de capturar errores dentro de
 las funciones, al mejor estilo try... catch...

 El problema que tengo ahora es que quiero personalizar los errores... Tengo
 la siguiente estructura...

 [CODE]
 CREATE TABLE instituciones
 (
   ins_codinst serial NOT NULL,
   ins_tipoinst character varying(10) NOT NULL,
   ins_nombre character varying(30) NOT NULL,
   CONSTRAINT pk_instituciones PRIMARY KEY (ins_codinst)
 )
 [/CODE]

 y la siguiente funcion para realizar los ABM (CUD) a dicha tabla..

 [CODE]
 CREATE OR REPLACE FUNCTION abm_instituciones(bpchar, integer, character
 varying, character varying)
   RETURNS void AS
 $BODY$
 DECLARE
 in_action ALIAS FOR $1;
 in_id ALIAS FOR $2;
 in_inst_nombre ALIAS FOR $3;
 in_tipoinst ALIAS FOR $4;

 BEGIN
 IF in_action = 'S' THEN
 -- if id is null, save it... otherwise... update it
 IF ((select count(*) from dominios where dom_coddompadre = 'O.TI' and
 dom_coddom = upper(trim(in_tipoinst))) = 0) THEN
 RAISE EXCEPTION 'El codigo % no corresponde a un tipo de
 institución', upper(trim(in_tipoinst));
 END IF;
 IF in_id IS NULL THEN
 INSERT INTO instituciones (ins_codinst, ins_tipoinst, ins_nombre)
 VALUES
 (nextval('instituciones_ins_codinst_seq'),
 upper(trim(in_tipoinst)), upper(trim(in_inst_nombre)));
 ELSE
 UPDATE instituciones SET
 ins_tipoinst = upper(trim(in_tipoinst)),
 ins_nombre = upper(trim(in_inst_nombre))
 WHERE ins_codinst = in_id;
 END IF;
 ELSE
 DELETE FROM instituciones
 WHERE ins_codinst = in_id;
 END IF;

 -- Catch errors if any
 EXCEPTION
 WHEN not_null_violation THEN
 RAISE EXCEPTION 'Todos los campos son requeridos';
 WHEN foreign_key_violation THEN
 RAISE EXCEPTION 'La institución no puede ser borrada, existen
 dependencias para este registro.';
 WHEN string_data_right_truncation THEN
 RAISE EXCEPTION 'Se ha superado el maximo de caracteres
 permitidos.';
 WHEN unique_violation THEN
 RAISE EXCEPTION 'La institución % ya existe en la base de datos.',
 upper(trim(in_inst_nombre));
 END;
 $BODY$
   LANGUAGE 'plpgsql' VOLATILE;
 [/CODE]

 Todo bien hasta aca, captura todos los errores marcados despues del
 EXCEPTION.

 Lo que yo quiero saber es si es posible capturar la columna que disparo el
 error. Supongamos que se supero el maximo de caracteres de la columna
 nombre, entonces mostrar un mensaje de que es esa columna la que esta
 causando conflicto... o Si es que esta en null, marcar cual columna es que
 quedo en null...

 Porque de la manera en que esta planteado ahora, los mensajes son muy
 genericos, supongamos que tengo 20 columnas NOT NULL... Como puedo hacer
 saber al usuario cual de esas columnas fue la que genero el error...

 Se entiende? Hay forma de hacerlo?

 Espero respuesta... Muchas Gracias...



Yo hizo algo asi, pero lo tuve que hacer en la aplicación cliente. En python
leida la cadena error generica de postgresql y con split la divido y saco
los datos.

Cuando pregunte algo parecido, me comento Alvaro que se tiene internamente
todos los datos, pero no son accesibles desde pl/pgsql.

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Quiero cancelar mi suscripción al foro

2009-09-15 Por tema Miguel Beltran R.
El 15 de septiembre de 2009 19:28, Yessica Brinkmann 
yessica.brinkm...@gmail.com escribió:

 Hola lista,
 Quisiera cancelar mi suscripción a este foro, alguien sabe como puedo
 hacer?
 Saludos,
 Yessica Brinkmann


Estoy viendo que usas gmail, la mas facil es en la parte superior donde sale
tu nombre, en mostrar detalles, apareceran varias opciones  y la del final
Anular suscripcion. le das click ahi

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] ERROR: relation ctr_alt does not exist en una funcion

2009-08-21 Por tema Miguel Beltran R.
El 20 de agosto de 2009 21:49, Suso Lopez jlcu...@terra.es escribió:

 Aqui me surge una duda, si yo, desde esta funcion quiero acceder a otra
 tabla que esta en otra base de datos, es posible?

Si


 Por ejemplo tengo esta BD ctr_alt y la tabla bloq, si quiero acceder a una
 BD que se llama Clientes, una de cuyas tablas se llama fact, se peude hacer?


Necesitas usar dblink (creo que esta en /contrib), pero lo recomendable es
si vas a compartir mucha informacion entre las bases de datos, que pongas
las 2 bases de datos en 1 sola en dos namespace.


Re: [pgsql-es-ayuda] ERROR: relation ctr_alt does not exist en una funcion

2009-08-21 Por tema Miguel Beltran R.
El 21 de agosto de 2009 09:25, Sergio Gabriel Rodriguez 
sgrodrig...@gmail.com escribió:

 2009/8/21 Miguel Beltran R. yourpa...@gmail.com:

  Necesitas usar dblink (creo que esta en /contrib), pero lo recomendable
 es
  si vas a compartir mucha informacion entre las bases de datos, que pongas
  las 2 bases de datos en 1 sola en dos namespace.

 dos namespace? o transformar las dos bases en dos schemas diferentes
 dentro una única bd


 Sergio Gabriel Rodriguez
 http://www.3trex.com.ar


jaja perdon me referia a schemas

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] ¿Existe una función en JavaSc ript para poder saber el Número de parametros recibidos en una función creada por el usuario?

2009-08-20 Por tema Miguel Beltran R.
El 19 de agosto de 2009 13:54, Iván Caballero Cano 
ivanhalen77postgre...@gmail.com escribió:

 Miguel:

No me equivoque de lista, pregunte por que hoy en día las tecnologias se
 usan generalmente juntas para crear una solución generalmente web ahora que
 esta mas de moda.
Si usas PostGreSQL existe una gran posibilidad de que tambien
 desarrolles en web y por lo tanto podemo decir que es un tema relacionado
 con experiencias de programadores.

Ubicate chavo! No soy yo quien esta desubicado.


Yo lo que quise responder (aunque parece que me falto explicación)
Es que aqui se ven temas de postgresql con otras tegnologias, pero
compactibles (para esto ya leiste el manual). Si no sabes si funciona,
pregunta. ¿funciona postgresql con javascript? o como te indicaron usar las
reglas de cortesia de internet y poner que es un off-topic (ves como si
estas tú desubicado si no las conoces)

Tu pregunta va mas enfocada a web que se ejecuta en la maquina cliente en un
navegador (por eso no va aqui) y con un servidor web que SE COMUNICA con
postgresql,
Existe postgresql + java, pero NO con javascripts

Tu pregunta va mejor en listas de Zope, Apache, diagnjo, etc.
-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Cual es el mejor uso de indices en esta tabla ?¿

2009-08-17 Por tema Miguel Beltran R.
Con riesgo a equivocarme creo que lo mejor es
http://www.postgresql.org/docs/8.4/interactive/textsearch.html

Se hablo hace poco de eso
http://archives.postgresql.org/pgsql-es-ayuda/2009-08/msg00012.php
http://archives.postgresql.org/pgsql-es-ayuda/2009-06/msg00506.php

El 17 de agosto de 2009 18:27, juan juanrami...@cajazacate.com.svescribió:


 Tengo una tabla así:

 CREATE TABLE personas
 (
  codigo numeric(8) NOT NULL,
  apellido1 text,
  apellido2 text,
  nombre1 text,
  nombre2 text,
  CONSTRAINT padron_pkey PRIMARY KEY (dui)
 );

 tiene casi 4 millones de registros, ahora bien, tengo que realizar
 consultas por nombres, entonces pregunto como creo el o los indices para
 tener mejor performance ... tener un solo indice por todas las columnas text
 o un indice por cada columna ?¿?¿

 Si las consultas que hare son de este tipo:
 select * from personas where apellido1 ilike '%JUAN%' and apellido ilike
 '%RAMIREZ%'

 Cual de estos indices es Mejor,

 1-
 CREATE INDEX dui_idx
 ON personas
  USING btree
  (apellido1, apellido2, nombre1, nombre2, nombre3);

 2-
 CREATE INDEX dui_idx1
 ON personas
  USING btree
  (apellido1);

 CREATE INDEX dui_idx2
 ON personas
  USING btree
  (apellido2);
 bla bla bla



 --
 Cordialmente,
 Juan Ramírez Miranda
 El Salvador
 --
 TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
  http://archives.postgresql.org/pgsql-es-ayuda




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] salen signos de interrogacion e n lugar de ñ o acentos

2009-07-31 Por tema Miguel Beltran R.
¿Cómo estas insertando la información?
¿desde un archivo de texto? ¿una aplicació?¿usas odbc?

El 31 de julio de 2009 18:23, Manuel A. Estevez Fernandez stvz...@gmail.com
 escribió:

 Saludos a todos.

 Creé una base de datos con encoding LATIN-1 y cuando cargo datos con
 acentos o 'ñ' sale un ?.

 ¿Por qué sucede  eso y cómo lo puedo solucionar?

 Nota:
 No puedo evitar poner estos datos, porque estamos cargando la DB a partir
 de información contenido en otra y es información de producción.

 Atentamente.

 Manuel Alejandro Estévez Fernández.
 --
 TIP 7: no olvides aumentar la configuración del free space map




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] caracteristicas unicas de postgresql

2009-07-16 Por tema Miguel Beltran R.
El 16 de julio de 2009 18:38, Emanuel Calvo Franco
postgres@gmail.comescribió:

  Oracle y MySQL ejecutan un COMMIT automaticamente despues de
  cualquiera de estas operaciones...
  Informix si lo maneja correctamente, al igual que Postgres.
 
 

 Aclaremos Jaime, NO es casulidad, Informix es un fork de postgres ;)



 ¿Dónde puedo ver mas a detalle eso del fork?, en wikipedia en español no lo
veo (aun no termino de leer)


Re: [pgsql-es-ayuda] caracteristicas unicas de postgresql

2009-07-16 Por tema Miguel Beltran R.
 Fuente: la historia es recopilada por Elein Mustein, que era parte del
 equipo de Illustra que fue a Informix.
 http://archives.postgresql.org/pgsql-advocacy/2004-12/msg00033.php

 --
 Alvaro Herrera
 http://www.amazon.com/gp/registry/DXLWNGRJD34J


Gracias, muy interesante.
Ahora con esto tengo otra pregunta
No conozco informix, ¿sigue siendo parecido a postgresql? ¿o ya cambio tanto
que un DBA de postgresql le costaria un poco adaptarse a informix?


Re: [pgsql-es-ayuda] Fundamento teorico del rendimiento de una vista

2009-07-15 Por tema Miguel Beltran R.
El 15 de julio de 2009 14:13, Jaime Casanova
jcasa...@systemguards.com.ecescribió:

 2009/7/15 Manuel A. Estevez Fernandez stvz...@gmail.com:
  Hola a todos.
 

 create view vista1 as select * from mitabla;

 cuando yo ejecute select * from vista1 lo que en realidad estoy
 ejecutando es: select * from mitabla


Una duda Jaime, si haces select * from vista1 where campo1=1 (campo1 tendria
un indice y con la condicion solo regresaria el 10% de la tabla)

¿cómo analiza el motor el hacer la consulta? ¿ve que la vista no tiene
condicionantes y solo agrega la nueva?¿o hace la busque de la vista y
despues le aplica un filtro? ¿que pasa si la vista tiene condicionantes?


Re: [pgsql-es-ayuda] Ordenar Columnas

2009-07-11 Por tema Miguel Beltran R.
El 11 de julio de 2009 08:58, Luis A. Zevallos Cárdenas 
lzeval...@lobosistemas.com escribió:

 Hola si se puede pero tienes que modificar una tabla pg_attribute

 ejemplo

 select attrelid, attname, attnum from pg_attribute where attname like
 'pais%' and attrelid = 18371

 18371;pais_cod;1
 18371;pais_dsc;2
 18371;pais_smb;3
 18371;pais_fcreacion;4
 18371;pais_usrcreacion;5
 18371;pais_ipcreacion;6

 Aqui te dice la posicion de las columnas si quieres cambiar el orden solo
 tienes que hacer un update a esta tabla.pero con cuidado ya que es una
 tabla muy importante para postgresql

 bueno adios


Si es tan sencillo, voy a checar en pgAdmin a ver si lo tienen en un
whislist, si no para pedirlo.
Aunque es una opcion que en la practica no ayuda realmente, pero visualmente
uno quiere ver las columnas en cierto orden para entenderse mejor.


Re: [pgsql-es-ayuda] WEB 2.0

2009-07-08 Por tema Miguel Beltran R.
 La pregunta que quiero hacer es porque postgresql no esta incluida
 dentro de las bases de datos XML o XML databases ver
 http://en.wikipedia.org/wiki/XML_database#Native_XML_databases, Esto
 con el fin de utilizar nuestra preciada base de datos de forma
 revolucionaria en aplicaciones Web 2.0?



Tal vez no este actualizado la wiki
http://www.postgresql.org/docs/8.4/static/datatype-xml.html


Re: [pgsql-es-ayuda] ESPACIOS EN BLANCO EN UNA QUERY

2009-06-30 Por tema Miguel Beltran R.
en tu insert pondrias

inserto into productos (nombre) value (btrim('  Joyeria '))
y esto se guardaria como 'Joyeria'
algo importante seria agregar una restriccion
con check(length(btrim(nombre))3)
para que tenga minimo 4 caracteres



El 30 de junio de 2009 09:09, Lorena Gpe. M. Osorio pequ...@gmail.comescribió:

 Buen día a todos tengo una duda que talvez sea demasiado fácil pero ya ´me
 provocó dolor de cabeza,  en mysql se resuelve con rtrim pero aquí en
 postgres no he podido encontrar como evitar que me inserte espacios en
 blanco.

 por ejemplo al insertar la descripcion de 'JOYERIA', si por algun motivo
 llego a insertar 'JOYERIA   ' con espacios a la derecha me los inserta tal
 cual y al momento de hacer mi consulta:

 select * from clasif where clf_desc = 'JOYERIA' solo me trae el registro
 que inserte sin espacios y el otro no lo toma en cuenta, espero me puedan
 ayudar, ya sea para eliminar los molestos espacios en blanco al final de mi
 query o bien para evitar insertarlos.

 saludos y buen día.





 --
 L.S.C. Lorena Gpe. M. Osorio




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] no hacer un insert pero siga la transacción

2009-06-25 Por tema Miguel Beltran R.
Hola lista

Por un sistema WEB que manejo tengo que si detecto un valor en un input
ejercute un INSERT en PG, pero tengo el problema que revisando si mando un 0
(cero en numero) el sistema me lo toma como '0' (cero en cadena) y si hace
un INSERT.
¿Es posible que PG decirle que si ese campo es 0 (porque al llegar a PG se
pasa como númerico) no haga el INSERT?. Algo importante este INSERT esta
dentro de una transaccion de hasta 24 INSERTS asi que no debe interumpir la
transacción.

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] no hacer un insert pero siga la transacción

2009-06-25 Por tema Miguel Beltran R.




 ¿No es más fácil hacer el IF en el lenguaje del sitio Web (PHP Perl o
 lo que tengas)?
 Silvio


No creo porque tendria que hacer 24 if
y con lo que dijo Alvaro solo hago uno
ademas es bueno saber esto, para algo de mas podria servirme


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] no hacer un insert pero siga la transacción

2009-06-25 Por tema Miguel Beltran R.



 Usa un trigger BEFORE INSERT que verifique si el valor es 0, y de serlo,
 returna NULL, con lo cual ese insert no se efectua.  En caso de no ser
 0, returna NEW, con lo cual el insert se hace normalmente.


Gracias Alvaro, quedo así

REATE OR REPLACE FUNCTION func_quincena_material_00_monto()
  RETURNS trigger AS
$BODY$
BEGIN

-- Work out the increment/decrement amount(s).

IF (TG_OP = 'INSERT') THEN --se lo pongo para saber para que casos
es la funcion

IF NEW.monto = 0 THEN
   RETURN NULL;
END IF;
END IF;

RETURN NEW;

END;

$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION func_quincena_material_00_monto() OWNER TO admin_ceed;


Re: [pgsql-es-ayuda] DECLARE Y SET

2009-06-10 Por tema Miguel Beltran R.
El 9 de junio de 2009 23:07, Dilm E.I.R.L i.d...@yahoo.es escribió:

 Estimados, nuevamente yo, con una duda:



 En SQL Server 2000 (solo por dar un ejemplo de como usaba DECLARE y SET)
 hacia algo asi :



 DECLARE @mistring varchar(1000)

 SET @mistring=''  /*inicializar variable*/
 SELECT @mistring = @mistring + ' ' + RTRIM(columna) from PruebaEmail
 /*concatenar*/
 SELECT @mistring



Solo para clarificar.
Postgresql a diferencia de MS Sql, tengo entendido que separa donde puedes
usar SQL puro y donde funciones
En MS Sql Server tu puedes hacer eso como una consulta normal.
En Postgresql tienes que crear una funcion para que te permita declarar
variables y otras cosas. esto es porque lo puedes hacer con varios lenguajes
diferentes todo depende con que lenguaje indicaste que trabaja tu funciones.
pl/pgsql, pl/python, pl/php, pl/java, etc.
Como declares y uses las variables depende del lenguaje que quieras usar.
Creo que todos pusieron ejemplos de pl/pgsql.

Aunque no sabia que se podia hacer lo que dijo Julio Cesar Rodriguez
Dominguez


Re: [pgsql-es-ayuda] nombre quien mando la exception?

2009-05-19 Por tema Miguel Beltran R.


 ...


 Esta es una de las cosas que deberíamos mejorar en Postgres.  El mensaje
 de error ya está separado en varios campos (message, hint, detail,
 context, file, line, position etc) ... pero faltan algunos
 campos con esta información: el nombre de la tabla involucrada, el
 nombre de la restricción, el nombre del índice, etc.  No debería ser
 difícil modificar Postgres para que la entregue, pero alguien tendría
 que financiarlo ...

 --
 Alvaro Herrera   http://planet.postgresql.org/
 Tiene valor aquel que admite que es un cobarde (Fernandel)


Gracias Alvaro. Probare un poco revisando el mensaje de y si es mucho
problema lo dejo, igual y no es grande el programa y la BD.
Por cierto (como broma), parece que a ti te pagan para responder las
preguntas de muchos de los novatos como yo :P eres de los que mas responde.
jajaja


[pgsql-es-ayuda] nombre quien mando la exception?

2009-05-18 Por tema Miguel Beltran R.
Hola lista

¿Existe alguna forma de saber el nombre un conStraint que genero una
excepción?
Ejemplo, si tengo

ck_material_usado CHECK (usado = recibido)
ck_material_reservado CHECK (reservado = monto);

Y hago un update a esa tabla donde alguna (cualquiera) de las retricciones
va a levantar una excepción que yo atrapo con su clausula EXCEPTION WHEN
check_violation THEN, pero como puedo saber con cual se la lanzo la
excepción  para yo poder regresar un mensaje de error mas especifico. No
hay dinero suficiente en la cuenta o La cuenta no puede recibir mas dinero
que el establecido originalmente.
-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Consulta de(por) fechas

2009-05-11 Por tema Miguel Beltran R.
El 11 de mayo de 2009 19:26, suso jlcu...@terra.es escribió:

 Hola Miguel, me ha funcionado perfectamente:)


Me alegro que te sirviera :D




 Y mira que he buscado, y no había encontrado nada útil,incluso llegué a
 poner

 fecha=:...

 Pq leí en algún site que las fechas había que ponerlas así:)

 Muchas gracias otra vez

 P.D.:Te puedo hacer otra pregunta sobre logs en postgres?


puedes preguntar, pero de eso no se mucho, mejor manda una nueva pregunta a
la lista. Igual si se te contesto




 Un slaudo
 Suso


cadena = Select * from mot1 where nhc =   CLng(n_historia)  _
and fecha = #  Format(NUEVA_FECHA, mm/dd/)
 #


Las fechas se tratan/manejan de otra manera en postgres?

 Se tratan como cadena, pero estas pueden tener diferentes formatos (1).

 prueba con:
 and fecha = '  Format(NUEVA_FECHA, mm/dd/)   ' 

 Solo anterior tiene comillas simples, despues del signo igual y al final.
 Es importante que configures postgresql para que te lea las fechas en ese
 formato (2). Yo por como se usa en México uso dd/mm/ o /mm/dd.

 (1)
 http://www.postgresql.org/docs/8.3/static/datatype-datetime.html#DATATYPE-DATETIME-DATE-TABLE
 (2)
 http://www.postgresql.org/docs/8.3/static/datatype-datetime.html#DATATYPE-DATETIME-INPUT


 


 Se certificó que el correo entrante no contiene virus.
 Comprobada por AVG - www.avg.es Versión: 8.5.320 / Base de datos de
 virus: 270.12.24/2108 - Fecha de la versión: 05/11/09 05:52:00



pd. Por cierto desde que te conteste olvide mandar una copia a la lista,
ahora si lo hago.


-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] traducciones (era Re: Consulta sobre entidades)

2009-04-27 Por tema Miguel Beltran R.

 Ahora mismo estoy preparando la traducción para 8.4 y tengo la duda
 de cómo traducir la frase foreign-data wrapper.


Leyendo el contexto a mi parece mejor adaptador de datos externos

At the moment, the foreign-data wrapper functionality is very rudimentary.
The purpose of foreign-data wrappers, foreign servers, and user mappings is
to store this information in a standard way so that it can be queried by
interested applications. The functionality to actually query external data
does not exist yet.


[pgsql-es-ayuda] consulta en la aplicación ó una vista?

2009-04-04 Por tema Miguel Beltran R.
Hola lista

Tengo esta consulta en mi sistema (uso zope2)


select e.ejercicio_id, e.ejercicio, p.proyecto, p.proyecto_id,
p.proyecto_nombre,
   u.ures, u.ures_id, u.ures_nombre, ej.eje, ej.eje_id,
   c.centro, c.centro_id, c.centro_nombre
from proyecto p
inner join ejercicio e ON e.ejercicio_id = p.ejercicio_id
inner join eje ej ON ej.eje_id = p.eje_id
inner join ures u ON u.ures_id = p.ures_id
inner join centro c ON c.centro_id = u.centro_id
where
   p.ejercicio_id = dtml-sqlvar ejercicio_id type=int
and
   p.proyecto = dtml-sqlvar proyecto type=nb


Es mejor tener esto en mi sistema ó hacer una vista en postgresql:

select e.ejercicio_id, e.ejercicio, p.proyecto, p.proyecto_id,
p.proyecto_nombre,
   u.ures, u.ures_id, u.ures_nombre, ej.eje, ej.eje_id,
   c.centro, c.centro_id, c.centro_nombre
from proyecto p
inner join ejercicio e ON e.ejercicio_id = p.ejercicio_id
inner join eje ej ON ej.eje_id = p.eje_id
inner join ures u ON u.ures_id = p.ures_id
inner join centro c ON c.centro_id = u.centro_id

y en zope solo hacer
select * from vista_proyecto
where
   ejercicio_id = dtml-sqlvar ejercicio_id type=int
and
   proyecto = dtml-sqlvar proyecto type=nb

Esta consulta la necesito solo para recuperar un registro a la vez.
¿cómo es mejor?¿pórque?



La pregunta mas inútil es la que no se hace.
Lo bueno de vivir un día mas es saber que nos queda un dia menos de vida o
era
Lo bueno de saber que nos queda un día menos de vida es haber vivido un dia
mas


Re: [pgsql-es-ayuda] OT: mejores practicas

2009-03-26 Por tema Miguel Beltran R.


   si el anio es el mismo que en tabla A no deberia estar aqui, mas bien
   aqui deberia estar el codigo del registro de tablaA lo que me hace que
   pensar que mi suposicion de que proyectoA deberia formar parte del PK
   de tablaB es correcta
 
  Es el mismo, pero esta el anio para no tener que buscar el dato en la
  tablaA.

 Es mala idea.  Te recomiendo quitarlo, y una vez que la aplicación esté
 más avanzada, medir qué optimizaciones realmente necesitas.  Lo más
 probable es que la desnormalización que te llegue a hacer falta (si es
 que alguna) sea totalmente distinto de lo que te imaginas al principio.

  Una ultima duda con la rapidez, igual y por eso estoy mal con mis
 diseños.
  Si hago una vista de tablaC que jale el dato de tablaA para tomar el
 anio,
  cuanta carga se para la base. claro que usario indices.

 Diseña normalizado.  Una vez que esté listo, desnormalizas sólo allí
 donde sea realmente necesario.  De lo contrario es mucho más difícil
 mantener todo.


Ya normalize todo según yo. Pero llegue a un punto que no se como seguir
aplicando, en la tabla vale tengo el campo ejercicio_id que tiene que
ser el mismo que en la tabla proyecto. Tiene que estar porque la PK es
ejericio_id, vale. vale es un campo númerico que empieza de 1 en cada
ejercicio.

Ya cambie todo a lo siguiente. Nota: los campos tipo serial tienen un INDEX
UNIQUE.

CREATE TABLE proyecto
(
  proyecto_id serial NOT NULL,
  proyecto character varying(10) NOT NULL,
  monto numeric(15,2) NOT NULL DEFAULT 0,
  usado numeric(15,2) NOT NULL DEFAULT 0,
  ures_id integer NOT NULL,
  eje_id integer NOT NULL,
  objetivo_pdi_id integer NOT NULL,
  estrategia_pdi_id integer NOT NULL,
  tipo_proyecto_id integer NOT NULL,
  programa_id integer NOT NULL,
  proyecto_nombre character(120) NOT NULL,
  justificacion text NOT NULL,
  objetivo_general text NOT NULL,
  inicio date NOT NULL,
  fin date NOT NULL,
  ejercicio_id integer NOT NULL,
  CONSTRAINT pk_proyecto PRIMARY KEY (ejercicio_id, proyecto),
  CONSTRAINT fk_proyecto_eje FOREIGN KEY (eje_id)
  REFERENCES eje (eje_id) MATCH SIMPLE
  ON UPDATE CASCADE ON DELETE NO ACTION,
  CONSTRAINT fk_proyecto_ejercicio FOREIGN KEY (ejercicio_id)
  REFERENCES ejercicio (ejercicio_id) MATCH SIMPLE
  ON UPDATE CASCADE ON DELETE NO ACTION,
  CONSTRAINT fk_proyecto_estrategia_pdi FOREIGN KEY (estrategia_pdi_id)
  REFERENCES estrategia_pdi (estrategia_pdi_id) MATCH SIMPLE
  ON UPDATE CASCADE ON DELETE NO ACTION,
  CONSTRAINT fk_proyecto_objetivo_pdi FOREIGN KEY (objetivo_pdi_id)
  REFERENCES objetivo_pdi (objetivo_pdi_id) MATCH SIMPLE
  ON UPDATE CASCADE ON DELETE NO ACTION,
  CONSTRAINT fk_proyecto_programa FOREIGN KEY (programa_id)
  REFERENCES programa (programa_id) MATCH SIMPLE
  ON UPDATE CASCADE ON DELETE NO ACTION,
  CONSTRAINT fk_proyecto_tipoproyecto FOREIGN KEY (tipo_proyecto_id)
  REFERENCES tipo_proyecto (tipo_proyecto_id) MATCH SIMPLE
  ON UPDATE CASCADE ON DELETE NO ACTION,
  CONSTRAINT fk_proyecto_ures FOREIGN KEY (ures_id)
  REFERENCES ures (ures_id) MATCH SIMPLE
  ON UPDATE CASCADE ON DELETE NO ACTION
)

CREATE TABLE objetivo
(
  objetivo_id serial NOT NULL,
  proyecto_id integer NOT NULL,
  objetivo character varying(10) NOT NULL,
  proyecto_objetivo_nombre text NOT NULL,
  CONSTRAINT pk_objeivo PRIMARY KEY (proyecto_id, objetivo),
  CONSTRAINT fk_objetivo_pyoyecto FOREIGN KEY (proyecto_id)
  REFERENCES proyecto (proyecto_id) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION
)

CREATE TABLE meta
(
  meta_id serial NOT NULL,
  meta character varying(10) NOT NULL,
  meta_nombre character varying(200) NOT NULL,
  indicador character varying(100) NOT NULL,
  plan_id integer NOT NULL,
  objetivo_id integer NOT NULL,
  CONSTRAINT pk_meta PRIMARY KEY (objetivo_id, meta),
  CONSTRAINT fk_meta_objetivo FOREIGN KEY (objetivo_id)
  REFERENCES objetivo (objetivo_id) MATCH SIMPLE
  ON UPDATE CASCADE ON DELETE NO ACTION,
  CONSTRAINT fk_meta_plan FOREIGN KEY (plan_id)
  REFERENCES plan (plan_id) MATCH SIMPLE
  ON UPDATE CASCADE ON DELETE NO ACTION
)

CREATE TABLE actividad
(
  actividad_id serial NOT NULL,
  actividad character varying(10) NOT NULL,
  actividad_nombre text NOT NULL,
  inicio date NOT NULL,
  fin date NOT NULL,
  monto numeric(15,2) NOT NULL,
  reservado numeric(15,2) NOT NULL DEFAULT 0,
  meta_id integer NOT NULL,
  usado numeric(15,2) NOT NULL DEFAULT 0,
  CONSTRAINT pk_actividad_meta_actividad PRIMARY KEY (meta_id, actividad),
  CONSTRAINT fk_actividad_meta FOREIGN KEY (meta_id)
  REFERENCES meta (meta_id) MATCH SIMPLE
  ON UPDATE CASCADE ON DELETE NO ACTION,
  CONSTRAINT ck_actividad_reservado CHECK (reservado = monto),
  CONSTRAINT ck_actividad_usado CHECK (usado = reservado)
)

CREATE TABLE material
(
  material_id serial NOT NULL,
  actividad_id integer NOT NULL,
  captura time without time zone NOT NULL DEFAULT now(),
  material character varying(10) NOT NULL,
  material_nombre 

Re: [pgsql-es-ayuda] OT: mejores practicas

2009-03-21 Por tema Miguel Beltran R.
Primero gracias a todos por contestar

El 20 de marzo de 2009 9:31, Jaime Casanova
jcasa...@systemguards.com.ecescribió:

 2009/3/19 Miguel Beltran R. yourpa...@gmail.com:
  Platicando con un amigo sobre como es mejor diseñar una base de datos
  tenemos un punto de desacuerdo.
 
  Yo digo que siguiendo la normalización en ocaciones puede ser un problema
  creo (ó es un mal diseño mio tal vez).
 

 esto no parece muy normalizado que digamos...

  Por ejemplo siguiendo la normalización (la estructura es solo para dar
 una
  idea):
  tablaA {
  id  serial;
  proyectoA  integer PRIMARY KEY;
  proyectoA_nombre  text;
  anio  integer;
  }
 

 para que el id serial? todas las tablas tienen uno y me parece que
 no sirve a ningun proposito util...

Su mayor proposito es como punto de referencia de saber en que momento se
inserto el dato, para detectar posibles errores de captura. como meter el
proyectoA 99 y si despues reviso darme cuenta que lo metieron despues del
65. y antes del 70. (no siempre nos tocan proyectos consecutivos 11,12,13)




  tablaB {
  id serial;
  proyectoA integer reference tablaA (proyectoA)
  proyectoB integer PRIMARY KEY
  fecha  date;
  fondo  varchar(10);
  cuenta varchar(10);
  }
 

 si tabla B depende directamente de tabla entonces proyectoA deberia
 formar parte del PK, por ejemplo si tabla B almacena algun tipo de
 detalle (como en el caso de la factura y el detalle de la factura)
 pero sin saber que tipo de informacion se va a almacenar solo son
 conjeturas

TablaB si depende directamente de tablaA. Por lo que se (porque no se
supieron decir los que me pidieron el programa) es que nunca se repite
proyectoB




  tablaC {
  id serial;
  anio integer; --es el mismo que en tablaA
  proyetoC integer;  --es un consecutivo que empieza
 --en 1 cada año, no se debe repetir
 --por eso se combina con anio.
  proyectoB integer REFERENCE tablaB (proyectoB);
  }PRIMARY KEY (anio, proyectoC)
 

 si el anio es el mismo que en tabla A no deberia estar aqui, mas bien
 aqui deberia estar el codigo del registro de tablaA lo que me hace que
 pensar que mi suposicion de que proyectoA deberia formar parte del PK
 de tablaB es correcta

Es el mismo, pero esta el anio para no tener que buscar el dato en la
tablaA.





  tablaD {
  id serial;
  tablaC_id integer REFERENCE tablaC (id)
  tipo char(1);
  folio integer;
  }PRIMARY KEY (tipo, folio)
 
 
  El problema que le digo a mi amigo, es que si necesito unos datos de
 tablaD
  filtrada por anio y proyectoA tengo que hacer muchos INNER JOIN -((tablaA
  inner JOIN tablaB) inner join tablaC) inner join tablaD-, y yo se que me
 van
  a pedir muchos reportes con esas caracteristicas. Y como estas los costos
 de
  almacenaje no representa mucho el gasto espacio de disco duro y si mas
  rapides si guardo esos 2 campos (ejercicio y proyectoA) en la tablaD.
 

 haz los cambios que te digo y me cuentas...

Hare los cambios y te cuento despues,





  ¿quién tiene rázon? ¿cómo sería lo mas rapido/mejor.?
 

 lo mas rapido no siempre es lo mejor y viceversa... mejor es hacerlo
 primero bien y luego preocuparse de que responda rapido... despues de
 todo, la optimizacion prematura es la raiz de todos los males (no
 recuerdo quien lo dijo)...

Una ultima duda con la rapidez, igual y por eso estoy mal con mis diseños.
Si hago una vista de tablaC que jale el dato de tablaA para tomar el anio,
cuanta carga se para la base. claro que usario indices.

Mejor muestro como estan realmente las tablas importantes.
Ahorita el programa se usa en solo una oficina, pero lo quiero hacer
pensando en que se pueda usar en varias oficinas. que es el campo ures.
ejercicio es el año.

CREATE TABLE proyecto
(
  id serial NOT NULL,
  proyecto_nombre character(120) NOT NULL,
  monto numeric(12,2) NOT NULL DEFAULT 0,
  usado numeric(12,2) NOT NULL DEFAULT 0,
  inicio date NOT NULL,
  fin date NOT NULL,
  ejercicio integer NOT NULL,
  proyecto character varying(10) NOT NULL,
  ures character varying(10) NOT NULL,
  programa character varying(10) NOT NULL,
  eje character varying(10) NOT NULL,
  tipo_proyecto character varying(10) NOT NULL,
  justificacion text NOT NULL,
  objetivo_general text NOT NULL,
  objetivo character varying(10),
  fondo_1101 numeric(12,2) NOT NULL DEFAULT 0,
  fondo_1102 numeric(12,2) NOT NULL DEFAULT 0,
  CONSTRAINT pk_proyecto PRIMARY KEY (proyecto),
  CONSTRAINT fk_proyecto_eje FOREIGN KEY (eje)
  REFERENCES eje (eje) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_proyecto_ejercicio FOREIGN KEY (ejercicio)
  REFERENCES ejercicio (ejercicio) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_proyecto_objetivo FOREIGN KEY (objetivo)
  REFERENCES objetivo (objetivo) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_proyecto_programa FOREIGN KEY (programa)
  REFERENCES programa (programa) MATCH SIMPLE
  ON UPDATE

[pgsql-es-ayuda] OT: mejores practicas

2009-03-19 Por tema Miguel Beltran R.
Platicando con un amigo sobre como es mejor diseñar una base de datos
tenemos un punto de desacuerdo.

Yo digo que siguiendo la normalización en ocaciones puede ser un problema
creo (ó es un mal diseño mio tal vez).

Por ejemplo siguiendo la normalización (la estructura es solo para dar una
idea):
tablaA {
id  serial;
proyectoA  integer PRIMARY KEY;
proyectoA_nombre  text;
anio  integer;
}

tablaB {
id serial;
proyectoA integer reference tablaA (proyectoA)
proyectoB integer PRIMARY KEY
fecha  date;
fondo  varchar(10);
cuenta varchar(10);
}

tablaC {
id serial;
anio integer; --es el mismo que en tablaA
proyetoC integer;  --es un consecutivo que empieza
   --en 1 cada año, no se debe repetir
   --por eso se combina con anio.
proyectoB integer REFERENCE tablaB (proyectoB);
}PRIMARY KEY (anio, proyectoC)

tablaD {
id serial;
tablaC_id integer REFERENCE tablaC (id)
tipo char(1);
folio integer;
}PRIMARY KEY (tipo, folio)


El problema que le digo a mi amigo, es que si necesito unos datos de tablaD
filtrada por anio y proyectoA tengo que hacer muchos INNER JOIN -((tablaA
inner JOIN tablaB) inner join tablaC) inner join tablaD-, y yo se que me van
a pedir muchos reportes con esas caracteristicas. Y como estas los costos de
almacenaje no representa mucho el gasto espacio de disco duro y si mas
rapides si guardo esos 2 campos (ejercicio y proyectoA) en la tablaD.

pero para hacer esto y asegurar integridad referencial tendria que tener
otra referencia de tablaD a tablaA.y aqui es donde dice mi amigo que eso lo
hace lento. y dificil de mantener despues.

¿quién tiene rázon? ¿cómo sería lo mas rapido/mejor.?


-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] problema de diseño de multiples fk

2009-01-08 Por tema Miguel Beltran R.
Pregunta a la lista si me pueden ayudar a saber si postgresql soporta lo que
quiero o tengo que cambiar mi diseño de tabla.

Tengo 3 tablas con casi los mismo campos: contrato, (recurso) humano,
(recurso) material. En estas guardo los recursos con los que voy a contar en
el año, donde tengo el _fondo_ de donde tomo dinero, el _monto_ y las
quincenas inicial y final cuando se va a gastar/recibir el dinero.

En contrato tengo que el _monto_ se debe dividir en partes iguales el rango
de quincenas que ponga. lo normal es de la 1 (1ra de enera) a la 24 (2da de
diciembre). Si el monto es $120,000 entonces cada quincena debe ser de
$5,000.
En humano es igual que en contrato.
En material cambia, porque debo indicar la cantidad en cada quincena que
puede ser diferente, pero al final la suma debe ser igual al _monto_.

Yo queria tener una sola tabla _quincena_ donde guardar los datos de las
otras 3 tablas y que solo tubiera un campo que indicara a donde hacia
referencia, pero ya que lo pense creo que no se puede. Es decir que la tabla
quincena tuviera 3 llaves foraneas del mismo campo de identificador a cada
tabla pero no se puede hacer eso.

Ahora ya pensadolo un poco mejor se me ocurrio tener una tabla principal con
los campos comunes y mis otras 3 tablas que heredaran se la comun y se le
agregue el campo extra a cada una que no tiene que ver con las otras tablas.
este campo tiene una llave foranea a otra tabla. Y ya con esto ahora si la
tabla _quincena_ que tendria su llave foranea a la comun.

La pregunta es que como nunca he trabajado con herencia ¿se puede hacer lo
que quiero? Quiero que en la tabla comun se guarden todos los datos para que
la de quincena este referenciada a la comun.

[diseño actual]
Contrato--v
Humano- QUINCENA
Materia^


[diseño nuevo]
Contrato  Humano   Materia
  |  ||
  ||--|
 |
V
Comun
 |
V
  Quincena



Uso la version 8.3.4

Gracias de antemano y ojala si me puedan ayudar a ver la solución mejor a mi
problema.


CREATE TABLE contrato
(
  id serial NOT NULL,
  contrato character varying(10) NOT NULL,
  contrato_nombre character varying(200) NOT NULL,
  fondo character varying(10) NOT NULL,
  monto numeric(12,2) NOT NULL,
  usado numeric(12,2) NOT NULL DEFAULT 0,
  inicial integer NOT NULL,
  final integer NOT NULL,
  actividad character varying(10) NOT NULL,
  CONSTRAINT pk_contrato PRIMARY KEY (contrato),
  CONSTRAINT fk_contrato_actividad FOREIGN KEY (actividad)
  REFERENCES actividad (actividad) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_contrato_fondo FOREIGN KEY (fondo)
  REFERENCES fondo (fondo) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT ck_contrato_inicial_final CHECK (inicial = 1 AND final = 24
AND inicial = final)
)

CREATE TABLE humano
(
  id serial NOT NULL,
  captura time with time zone NOT NULL DEFAULT now(),
  humano character varying(10) NOT NULL,
  humano_nombre character varying(200) NOT NULL,
  categoria character varying(10) NOT NULL,
  fondo character varying(10) NOT NULL,
  porcentaje integer NOT NULL DEFAULT 0,
  actividad character varying(10) NOT NULL,
  monto numeric(12,2) NOT NULL,
  usado numeric(12,2) NOT NULL DEFAULT 0,
  inicial integer NOT NULL,
  final integer NOT NULL,
  CONSTRAINT pk_humano PRIMARY KEY (humano),
  CONSTRAINT fk_humano_actividad FOREIGN KEY (actividad)
  REFERENCES actividad (actividad) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_humano_categoria FOREIGN KEY (categoria)
  REFERENCES categoria (categoria) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_humano_fondo FOREIGN KEY (fondo)
  REFERENCES fondo (fondo) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION
)

CREATE TABLE material
(
  id serial NOT NULL,
  captura time with time zone NOT NULL DEFAULT now(),
  material character varying(10) NOT NULL,
  material_nombre character varying(200) NOT NULL,
  cuenta character varying(10) NOT NULL,
  fondo character varying(10) NOT NULL,
  monto numeric(12,2) NOT NULL,
  usado numeric(12,2) NOT NULL DEFAULT 0,
  actividad character varying(10) NOT NULL,
  inicial integer NOT NULL,
  final integer NOT NULL,
  CONSTRAINT pk_material PRIMARY KEY (material),
  CONSTRAINT fk_material_actividad FOREIGN KEY (actividad)
  REFERENCES actividad (actividad) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_material_cuenta FOREIGN KEY (cuenta)
  REFERENCES cuenta (cuenta) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_material_fondo FOREIGN KEY (fondo)
  REFERENCES fondo (fondo) MATCH SIMPLE
  ON UPDATE NO ACTION ON DELETE NO ACTION
)

CREATE TABLE fondo
(
  id integer NOT NULL DEFAULT 

[pgsql-es-ayuda] [OT] nombre para campos comunes

2008-12-09 Por tema Miguel Beltran R.
Estoy en mis momentos de reflexión y me salio la duda ¿qué nombres son los
mas comunes que se usan para ciertas necesidades?

| Nombre   | Descripcion
| Campo|
| --|-
| orden  | campo tipo serial. para el consecutivo, que lleva el
orden de cuando se insertaron las tuplas. antes usaba ID pero queria algo
mas en español y descriptivo.
| fecha_alta   | campo tipo date. para saber cuando se inserto la tupla.
nunca he necesitado la hora, para eso seria ¿fechahora_alta?
| activo  | campo boolean para saber si el dato debe ser mostrado en
ciertos casos. tambien lo he usado INT (1 verdadero / 0 falso) porque m$sql
2000 no soporta bool
| condicion | campo tipo char(1). parecido a 'activo', los valores que
uso son 'A' para activo, 'S' para suspendido y 'C' para candelado.
| rfc_curp   | campo tipo varchar(15). en México son los 2 nombres (se
esta cambiando para usar solo la curp) de la clave unica de persona.
| ultima_modificacion | campo tipo date. el nombre dice para que es. igual
estoy pensado que no seria malo hacerlo timestamp.
| region_nombre  | para los catalogos. 'region' es un ejemplo, varia
dependiendo el caso. 'region' es la llave primaria del catalogo y
'region_nombre' es la descripción. asi si tengo que hacer un join y ambas
tablas tienen el campo una descripcion no modifico el nombre de la columna y
uso el mismo en todo el sistema.
| observacion  | tipo text. una descripción mas larga del registro. como
para un catalogo de productos.
¿qué nombre de campos se les hace mejor para indicar un periodo de fechas,
inicial y final o empezo y termino o desde y hasta?
¿pára guardar solo el año, usan año (poco aconsejable creo), ano o
anio?


para las foreng key uso fk_nombretabla_campo(s)
primary key uso pk_nombretabla_campos(s)
index uso idx_nombretabla_campos(s)

¿ustedes cómo los nombran?
-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] acerca de schemas

2008-11-18 Por tema Miguel Beltran R.
Estoy diseñando una aplicación y en la base de datos lo quiero manejar con
esquemas, yo seria el super-administrador de toda la base de datos y tendría
usuarios administrador por cada esquema.

A la hora de iniciar sesión un usuario modifico su search path al esquema
que le corresponde solamente.

Todo esto debido a que los otros administradores deben poder sacar reportes
de sus empresas, pero no pueden tener acceso a la información de las
otras. Y para no complicarme con mantener mas de una base de datos, se me
hizo mejor manejar esquemas.

Para casos como estos es el uso de los esquemas ¿o para qué se crearon?

El 17 de noviembre de 2008 5:21, Alvaro Herrera
[EMAIL PROTECTED]escribió:

 Carlos Bazán escribió:

  Me refiero a que tengo una base de datos ej. empresas y dentro de esta
  base de datos quiero tener mas de 1000 empresas con sus tablas,
  dominios, funciones etc. (las que son iguales para todas las empresas)
  pero en diferentes schemas y así tener todo ordenado.

 Esta es una idea muy mala; en esencia, reemplazas una columna extra para
 el ID de empresa en las tablas (lo cual es un dato) con una capa de
 esquemas (los cuales son meta-datos).  Es muy malo como técnica de
 modelamiento, y posiblemente también sea más lento.  La aplicación
 también va a tener peor código, porque tendrás algo así:

 select * from $empresa.tabla where ...

 cuando podrías tener

 select * from tabla where empresa = $id and ...

 --
 Alvaro Herrera   Valdivia, Chile   ICBM: S 39º 48' 55.3, W 73º 15'
 24.7
 Escucha y olvidarás; ve y recordarás; haz y entenderás (Confucio)
 --
 TIP 1: para suscribirte y desuscribirte, visita
 http://archives.postgresql.org/pgsql-es-ayuda




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] retorno de sentencia

2008-11-18 Por tema Miguel Beltran R.
insert 
if FOUND then

http://www.postgresql.org/docs/8.3/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-DIAGNOSTICS

2008/11/18 Leonardo A. Marchese [EMAIL PROTECTED]

 Hola,

 Alguien me podría decir como se pone el retorno  de una sentencia sql (ej.
 insert ...) dentro de un procedimiento almacenado o función dentro del
 administrador de PostgreSQL.
 Les pongo un ejemplo similar a lo que quiero, pero en otro lenguaje:

 insert into (..) values (...) ;
 if sqlca.sqlcode = 0 then
 ...
 else
 ...
 end if

 Gracias.

 --
 -
   Leonardo A. Marchese
   Lic. en Informática




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] acerca de schemas

2008-11-18 Por tema Miguel Beltran R.
El 18 de noviembre de 2008 10:18, Alvaro Herrera
[EMAIL PROTECTED]escribió:

 Miguel Beltran R. escribió:
  Estoy diseñando una aplicación y en la base de datos lo quiero manejar
 con
  esquemas, yo seria el super-administrador de toda la base de datos y
 tendría
  usuarios administrador por cada esquema.

 No existe el concepto de administrador por esquema.  Tienes que darle
 privilegios al usuario en cada tabla.

Lo dije asi, pero claro que es asignar a un usuario admin1 derecho de
poder hacer todo (insert, select, etc. sin with grand option) a las tablas
del esquema1, y al usuario admin2 derecho de hacer todo para las tablas del
esquema2


  A la hora de iniciar sesión un usuario modifico su search path al esquema
  que le corresponde solamente.

 Esa no es una restricción que aporte nada a la seguridad, porque el
 usuario puede cambiarlo fácilmente.

No es para seguridad, es mas bien para que no lo tengan que hacer
manualmente el select * from esquema2.mitabla . Solo que pongan select *
from mitabla (con un search path=esquema2).
La seguridad seria con el punto anterior.




  Todo esto debido a que los otros administradores deben poder sacar
 reportes
  de sus empresas, pero no pueden tener acceso a la información de las
  otras. Y para no complicarme con mantener mas de una base de datos, se me
  hizo mejor manejar esquemas.

 Mira veil:
 http://pgfoundry.org/projects/veil/

Lo estoy checando, gracias



 --
 Alvaro Herrera
 http://www.amazon.com/gp/registry/3BP7BYG9PUGI8
 The important things in the world are problems with society that we don't
 understand at all. The machines will become more complicated but they won't
 be more complicated than the societies that run them.(Freeman Dyson)




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] Pregunta sobre error en disparador

2008-11-15 Por tema Miguel Beltran R.
OLD: existe en UPDATE y DELETE
NEW: existe en INSERT y UPDATE
Sin importar si es BEFORE o AFTER, pero si es en after y regresas algo,
simplemente se ignora. (1)

Tu quieres qué marque error antes de que borre o actualize? entonces es
before.



Gracias por la respuesta pero aun cambiando la declaración me sigue
 marcando el error:

 ERROR:  record new is not assigned yet
 DETAIL:  The tuple structure of a not-yet-assigned record is
 indeterminate.
 CONTEXT:  PL/pgSQL function movement_trg line 20 at if
 STATEMENT:  DELETE FROM M_Movement
WHERE M_Movement_ID
IN ('100') AND AD_Client_ID IN (100) AND AD_Org_ID IN
 (100);



Aqui se ve que quieres borrar un regristo y en la funcion tienes
COALESCE(OLD.MOVEMENTDATE, v_DateNull)  COALESCE(NEW.MOVEMENTDATE,
v_DateNull)
pero como lo estas llamando desde un delete no existe NEW, a menos que con
el primer IF sea un valor que pones cuando actualizas, entonces estaria en
NEW

(1) http://www.postgresql.org/docs/8.3/static/plpgsql-trigger.html
-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] consecutivo

2008-11-13 Por tema Miguel Beltran R.
Esto te puede ayudar.

http://archives.postgresql.org/pgsql-es-ayuda/2004-04/msg00300.php

2008/11/13 Andres Felipe S. [EMAIL PROTECTED]

  Hola amigos listeros, ¡¡
 Tengo una pregunta, espero me puedan hayudar
 me piden que a la consulta que le ponga  a mi tabla, le ponga un
 consecutivo empezando desde 1
 y no tengo ni idea de como colocarle un consecutivo

 osea la tabla es
 TABLA
 Documento -   Nombre - Fecha
 1545455Andres   -  15082008
 1548774Tatiana   -  14042009
 ETc

 y que la respuesta a la consulta sea

 Num- Documento -   Nombre - Fecha
 1   1545455Andres   -  15082008
 2   1548774Tatiana   -  14042009
 3   ETc


 Gracias


 --
 ¡Pasa del Pendrive! Skydrive almacena hasta 5 GB online 
 gratishttp://www.todoslospendrivesvanalcielo.com/




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


[pgsql-es-ayuda] OT: Lo que viene en el proximo pgAdmin 1.9

2008-11-11 Por tema Miguel Beltran R.
Se me muy bien la nueva versión

http://postgresonline.com/journal/index.php?/archives/73-PgAdmin-III-1.9-First-Glance.html

-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] error al crear base de datos....

2008-11-06 Por tema Miguel Beltran R.
Cuando se creo el cluster del servidor, se hizo con una configuracion
es_ES.utf8 (1) y por eso no te deja. Si alguién sabe espeficicamente porque
no deja, me gustaria saber, porque el latin uno esta dentro de lo que puede
usar utf-8 ¿o no?

La solución rapida seria CREO volver a inicializar tu directorio con
locale=es_ES.LATIN1
o tal vez intentar desde psql un CREATE DATABASE  (2)


1.- http://www.postgresql.org/docs/8.3/interactive/app-initdb.html
2.- http://www.postgresql.org/docs/8.3/static/sql-createdatabase.html

2008/11/6 Eduardo Arévalo [EMAIL PROTECTED]

 Hola a todos:
 estoy tratando de crear na base de datos con caracteres en español.
 utilizando el comado:
 -bash-3.2$ ./createdb -E LATIN1 sig_3
 pero me sale el siguiente error
 Password:
 createdb: database creation failed: ERROR:  encoding LATIN1 does not match
 server's locale es_ES.utf8
 DETAIL:  The server's LC_CTYPE setting requires encoding UTF8.

 recien he instalado la versión 8.3 con el siguiente comando
 ./postgresql-8.3.4-1-linux-x64.bin

 me podrian dar una pista de solucion
 gracias




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida


Re: [pgsql-es-ayuda] duda/problema con query y funcion

2008-09-25 Por tema Miguel Beltran R.
La verdad no se mucho todavia sobre como interpretar los explain
analyze, yo lo que queria era ver si habia una diferencia en los que
regresaba y ver poque no te regresaba los mismos datos. Pero no sabia
que si la hacias a la funcion te regresaba tan pocos datos.

2008/9/23 Roberto Rodríguez Pino [EMAIL PROTECTED]:
 2008/9/23 Miguel Beltran R. [EMAIL PROTECTED]:
 No se si se pueda pero haz un explian analyze a ambas

 EXPLAIN ANALYZE SELECT * FROM buscandoError('25-08-2008');

 Y nos mandas el resultado
 por cierto que version de postgres usas?

 Miguel, muchas gracias por tu ayuda. Jaime ya me ha resuelto la duda.
 Por cierto (aunque no he leído nunca acerca del Explain Analyze)...
 que se puede concluir de los explain analyze?
 Saludos!
 Roberto



 --
 visita mi weblog!
 http://trasto.hopto.org
 [EMAIL PROTECTED]
 http://softwarelibre.diinf.usach.cl




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida
--
TIP 5: ¿Has leído nuestro extenso FAQ?
 http://www.postgresql.org/docs/faqs.FAQ.html


Re: [pgsql-es-ayuda] Ayuda consulta SQL

2008-09-23 Por tema Miguel Beltran R.
Antes de pensar en tu consulta tengo un duda
Si es en un intervalo de 15 minutos, tiene que ser lo que cumplan de
2008/06/01 1:00:00 a 2008/06/01 1:14:59 y su promedio.
o por cada registro checar los que esten dentro de los 15 minutos
siguentes, con tus datos seria,
tomando como inicio el de 1:05:00 incluiria el 1:10 y 1:15 y su promedio
luego tambien 1:10 incluiria 1:15 y 1:25 y su promedio

o cómo?

2008/9/22 Cristián Osorio [EMAIL PROTECTED]:
 Hola amigos, me encuentro algo aproblemado con una consulta en SQL
 tengo la siguiente tabla:

 timestamp| valor
 -
 2008/06/01 1:05:00| 10
 2008/06/01 1:10:00| 11
 2008/06/01 1:15:00| 12
 2008/06/01 1:25:00| 9
 2008/06/01 1:35:00| 10
 2008/06/01 1:40:00| 10
 2008/06/01 1:45:00| 13
 2008/06/01 1:55:00| 2
 2008/06/01 2:05:00| 10
 2008/06/01 2:10:00| 10
 2008/06/01 2:15:00| 1
 2008/06/01 2:20:00| 123
 2008/06/01 2:25:00| 10
 2008/06/01 2:30:00| 111

 Necesito hacer una consulta que debe calcular el promedio de los valores de
 acuerdo un intervalo de tiempo. Este intervalo puede ser de a 15, 30 o 60
 minutos, en realidad creo que lo que se necesita hacer es una funcion que me
 retorne un conjunto de resultados, pero no le pego mucho al pgsql. Si
 alguien puede ayudarme realizando la funcion u orientandome como hacerlo se
 lo agradecería, si alguien sabe alguna forma de hacerlo con SQL, con alguna
 instruccion especial de PostgreSql mucho mejor.
 De antemano, Gracias.

 --
 Saludos,
 Cristián Osorio M.




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía unregister TuDirecciónDeCorreo a [EMAIL PROTECTED])


Re: [pgsql-es-ayuda] duda/problema con query y funcion

2008-09-23 Por tema Miguel Beltran R.
No se si se pueda pero haz un explian analyze a ambas

Asi:
EXPLAIN ANALYZE SELECT articulo.idarticulo, costoultimo.costoultimo
   FROM articulo
   LEFT OUTER JOIN costo USING (idarticulo)
   LEFT OUTER JOIN (select costo.idarticulo, costoultimo from
costo,(select max(idcosto) as idcosto,idarticulo,max (fecha) from costo
where fecha='25-08-2008' group by idarticulo) as fechacosto where
fechacosto.idcosto = costo.idcosto) as costoultimo USING (idarticulo)
   where
   (costo.flag = false and costo.fecha='25-08-2008' and costo.idproveedor
is NULL) or (costo.flag=true and costo.fecha='25-08-2008') or
(costo.flag = false and costo.fecha='25-08-2008')
   group by articulo.idarticulo, costoultimo.costoultimo
   order by idarticulo;


y despues un

EXPLAIN ANALYZE SELECT * FROM buscandoError('25-08-2008');

Y nos mandas el resultado
por cierto que version de postgres usas?

El día 23 de septiembre de 2008 14:28, Roberto Rodríguez Pino
[EMAIL PROTECTED] escribió:
 2008/9/23 Miguel Beltran R. [EMAIL PROTECTED]:
 Se me ocurre que es algo con las fechas, que no te las interprete
 igual y por lo tanto no busque en el mismo rango.
 Cómo pasas la fecha a la funcion? Trata probando mandadola como
 -MM-AA. Pruebalo en ambas partes, consulta directa y funcion.
 Tambien checa en tu postgresql.conf que tengas puesto que pueda
 interpretar la fecha es ese formato. Yo lo tengo datestyle = 'iso,
 DMY'

 Hola Miguel, muchas gracias por tu respuesta pero no resultó. Probé
 poniendo la fecha de varias formas y al parecer no es eso. Probé tanto
 en la query y la función.
 Tenia la misma configuración para datastyle, aunque con minsuculas. Lo
 puse en mayúsculas (aunque no debe influir mucho) pero tampoco hubo
 cambios.
 ¿Más pistas?
 Muy agradecido por más comentario.
 Saludos!
 Roberto

 --
 visita mi weblog!
 http://trasto.hopto.org
 [EMAIL PROTECTED]
 http://softwarelibre.diinf.usach.cl




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net


Re: [pgsql-es-ayuda] Compatibilidad Visual Basic 6.0

2008-09-17 Por tema Miguel Beltran R.
-Como dicen usa ADO en lugar de DAO.
-Algunos campos no existen igual en Postgresql. Por ejemplo no esta el
campo autoincremento. En PG es un campo entero mas un ... - no me
acuerdo como llamarlo ahora  - una funcion que cambia el valor.
Tambien se le conoce como campo tipo SERIAL.
-Existen varias formas de accesar a Postgresql
(http://www.postgresql.org/download/products/2) creo que para con VB6
seria con Postgresql OLE DB ó psqlODBC. Desconosco cual convenga mas
en tu caso.
-Algo util es el uso de schemeas (si se escribe asi?) que te sirve
para tener tablas que se llaman igual pero en diferente nombre de
espacio. Se necesitar estar seguro cuando utilizarlo.
-Usa la versión mas reciente. Busca en internet reviews para ver las
nuevas caracteristicas y piensen en que les puede usar.
-Existe una carpeta de contribs donde se incluyen utilerias muy buenas.
-si usas IIF, lo mas cercano es CASE. Hace como 1 semana se hablo de
este comando y como simularlo creando tu propia funcion.
-Debes checar como vas a usar las fechas, Existen PG diferentes tipos
segun sea la necesidad.
-Creo que existe una utileria que pasa los mdb a access.

El día 17 de septiembre de 2008 10:25, GRUPO SIC, S.A. DE C.V.
[EMAIL PROTECTED] escribió:
 Saludos cordiales, somos desarrolladores de sistemas en la CD de México.

 Queremos saber la compatibilidad para emigrar un sistema desarrollado en
 visual Basic 6.0 (utilizamos base datos ACCESS)  y utilizar su Postgre SQL
 como servidor de base de datos.

  Atentamente

 Ing Efraín Caporali C.

 TEL (0155) 5970-4698

 Mail: [EMAIL PROTECTED]







-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net


Re: [pgsql-es-ayuda] Nuevas presentaciones en la wiki

2008-08-06 Por tema Miguel Beltran R.
Afinamiento de la base de datos
-Setear cambiar a Establecer.

2008/7/31 Alvaro Herrera [EMAIL PROTECTED]:
 Emanuel Calvo Franco escribió:
 Interesantes y utiles. Necesitamos más documentación en castellano,
 estoy podrido de leer en ingles :P

 Same here!

 --
 Alvaro Herrera   Valdivia, Chile   ICBM: S 39º 48' 55.3, W 73º 15' 24.7
 El Maquinismo fue proscrito so pena de cosquilleo hasta la muerte
 (Ijon Tichy en Viajes, Stanislaw Lem)
 --
 TIP 1: para suscribirte y desuscribirte, visita 
 http://archives.postgresql.org/pgsql-es-ayuda




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida
--
TIP 7: no olvides aumentar la configuración del free space map


Re: [pgsql-es-ayuda] normalizacion

2008-08-04 Por tema Miguel Beltran R.
Apena estoy revisando mis correos y este como dicen esta interesante.

Yo en hice algo malo al no aplicar la normalización pero, digo PERO es
un sistema con vb6 y access (Hace ya unos ~ 10 años). Que por lo mal
hecha me dio problemas después cuando me pedían que les agregara
cosas. Ya después me canse de inventar tanta cosa en el programa, que
mejor modifique la base de datos ya con los conocimientos y
experiencia de los años. Al estar modificando se me hizo mas fácil que
el importe (la suma del importe de factura-productos), porcentaje del
impuesto, impuesto en cantidad, porcentaje de descuento, descuento en
cantidad, subtotal y total este en la factura. En lugar de tener una
consulta que me sume estos datos. En el equipo que se tenia era una
perdida de tiempo por todo lo que tardaba.
quedabo algo así.

importe, % desc, $ desc, subtotal, % impu, $ impu, total
1000,  5,50, 1050,15, 157.5, 1157.5

Esto servia para 1) cuando queria ver los datos de generales de una
factura, 2) al hacer los diferentes reportes.
En ambos casos despues de hacer el cambio se disminuyo drasticamente
el tiempo requerido de los reportes. En estos casos donde el espacio
no es un factor como la velocidad si lo veo bien y hasta necesario
hacer estos cambios.

El día 28 de julio de 2008 5:51, Calabaza [EMAIL PROTECTED] escribió:
 Este e-mail me vino al privado, lo reenvio:

 El día 28 de julio de 2008 3:22, David Prieto [EMAIL PROTECTED] escribió:

 quisiera saber su opinión sobre el asunto q hacen muchos programadores
 (los cuales tambien diseñan las base d datos) y es q
 por favor, escribe completo las palabras que no estamos utilizando un
 móvil... =)

 en la tabla factura
 guardan tanto el codigo de cliente, como el nombre y apellidos del
 cliente.
 Cómo todos ustedes saben eso rompen con las reglas d normalización.

 Q opinan uds. sobre ese asunto, a q se deberá esto??

 Opino que en muchos muchos casos esto es necesario.

 Ya se ha comentado que la factura no debe modificar su contenido una vez
 emitida, y que si el día de mañana tu cliente número 1234 cambia de
 domicilio, cuando reimprimas la factura debe salir igual que la primera vez.

 También habrá casos (el típico cliente 9, de clientes varios), que
 no hace falta tenerlo en la base de datos como cliente, pero que sí que
 tienes que guardar sus datos en cada factura.

 MI opinión es que la persona que diseña una bd así no conoce las formas
 normales,
 y si las conoce y no las utiliza se puede deber a que:
 o es un super dba que esta tratando de conseguir algo a cambio de
 redundancia pero la controla
 o conoce las formas normales pero no las entiende. =)

 MI opinión es que un buen diseño de una base de datos pasa por normalizar
 primero y des-normalizar un poco después. He visto bases de datos
 intratables por culpa de tanta normalización.

 davidp.

 Sin comentarios, porque ya se ha hablado mucho de esto en este hilo.
 Un abrazo,
 --
 §~^Calabaza^~§ from Villa Elisa, Paraguay
 
 A hendu hína: Billy Idol - Rebell Yell
 http://foxytunes.com/artist/billy+idol/track/rebell+yell
 --
 TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía unregister TuDirecciónDeCorreo a [EMAIL PROTECTED])


Fwd: [pgsql-es-ayuda] Hora del Servidor

2008-07-10 Por tema Miguel Beltran R.
Perdon, me falto mandarlo a la lista

2008/7/10 Miguel Beltran R. [EMAIL PROTECTED]:
 Creo que Alvaro al decir Huso se refiere a esto


 http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3LEMA=huso
  ~ horario.

 1. m. Geogr. Cada una de las partes en que queda dividida la
 superficie terrestre por 24 meridianos igualmente espaciados y en que
 suele regir convencionalmente un mismo horario.



 2008/7/10 Alvaro Herrera [EMAIL PROTECTED]:
 Hugo César escribió:

 Una cosa mas SET TIMEZONE es una variable de entorno cierto ??

 No, una variable de Postgres (la misma que configuras en
 postgresql.conf, pero esta vez la cambias directamente via la interfaz
 SQL, y rige solamente para esa sesion).

 --
 Alvaro Herrerahttp://www.CommandPrompt.com/
 The PostgreSQL Company - Command Prompt, Inc.
 --
 TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía unregister TuDirecciónDeCorreo a [EMAIL PROTECTED])




 --
 
 Lo bueno de vivir un dia mas
 es saber que nos queda un dia menos de vida




-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida
--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo 
agradecerán