[pgsql-es-ayuda] Ejecutar una función que crea una vista con dblink

2008-07-11 Por tema Laura Martinelli
  Buenas a todos:

  Comencé a ver cómo funciona dblink y para ello, a modo de prueba, cree una 
función que
  genera una vista de la base de datos a la cual me conecté con
  dblink.

  Desde la consola la función se genera correctamente!

CREATE OR REPLACE FUNCTION dblink_db1_db2() RETURNS int4 AS $$
BEGIN
SELECT dblink_connect('dbname=academicos user=postgres password=turnos');
CREATE OR REPLACE VIEW public.prueba AS 
 SELECT alumnos.dni
   FROM dblink('SELECT dni FROM alumnos'::text) alumnos(dni numeric(10,0));
SELECT dblink_disconnect();
RETURN 1;
END;
$$ LANGUAGE plpgsql;

  
  pero cuando la quiero ejecutar

SELECT dblink_db1_db2();

  me da el siguiente error:

Eror: select query has no destination for result data
Hint: if you want to discard the results, use PERFORM instead.
Context:Pl/pgSQl function "dblink_db1_db2" line 2 at SQL statement

  si pruebo con PERFORM dblink_db1_db2();

  me dice:

Error: syntax error at or near "perform" en el caracter 1

Espero que puedan ayudarme
Desde ya les agradezco mucho

Saludos,
Laura
[EMAIL PROTECTED]


--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo


Re: [pgsql-es-ayuda] Ejecutar una funció n que crea una vista con dblink

2008-07-11 Por tema Alvaro Herrera
Laura Martinelli escribió:

>   pero cuando la quiero ejecutar
> 
> SELECT dblink_db1_db2();
> 
>   me da el siguiente error:
> 
> Eror: select query has no destination for result data
> Hint: if you want to discard the results, use PERFORM instead.
> Context:Pl/pgSQl function "dblink_db1_db2" line 2 at SQL statement
> 
>   si pruebo con PERFORM dblink_db1_db2();

Tienes que cambiar a PERFORM el dblink_connect().

-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda


[pgsql-es-ayuda] Re[2]: Ejecutar una función que crea una vista c on dblink

2008-07-11 Por tema Laura Martinelli


 Con fecha Viernes, 11 de Julio de 2008, 11:34:12 a.m., escribió:

AH> Laura Martinelli escribió:

>>   pero cuando la quiero ejecutar
>> 
>> SELECT dblink_db1_db2();
>> 
>>   me da el siguiente error:
>> 
>> Eror: select query has no destination for result data
>> Hint: if you want to discard the results, use PERFORM instead.
>> Context:Pl/pgSQl function "dblink_db1_db2" line 2 at SQL statement
>> 
>>   si pruebo con PERFORM dblink_db1_db2();

AH> Tienes que cambiar a PERFORM el dblink_connect().

Alvaro vos decís que dentro de la función escriba:

PERFORM dblink_connect('dbname=academicos user=postgres password=turnos');

lo hice y despues llamo a la función con select y con perform y me
sigue dando los mismos errores que antes para ambos casos.

Saludos,
Laura Martinelli  
mailto:[EMAIL PROTECTED]


--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
   http://archives.postgresql.org/pgsql-es-ayuda


Re: [pgsql-es-ayuda] Re[2 ]: Ejecutar una funció n que crea una vista con dblink

2008-07-11 Por tema Alvaro Herrera
Laura Martinelli escribió:
> 
> 
>  Con fecha Viernes, 11 de Julio de 2008, 11:34:12 a.m., escribió:
> 
> AH> Laura Martinelli escribió:
> 
> >>   pero cuando la quiero ejecutar
> >> 
> >> SELECT dblink_db1_db2();
> >> 
> >>   me da el siguiente error:
> >> 
> >> Eror: select query has no destination for result data
> >> Hint: if you want to discard the results, use PERFORM instead.
> >> Context:Pl/pgSQl function "dblink_db1_db2" line 2 at SQL statement
> >> 
> >>   si pruebo con PERFORM dblink_db1_db2();
> 
> AH> Tienes que cambiar a PERFORM el dblink_connect().
> 
> Alvaro vos decís que dentro de la función escriba:
> 
> PERFORM dblink_connect('dbname=academicos user=postgres password=turnos');

Si.

> lo hice y despues llamo a la función con select y con perform y me
> sigue dando los mismos errores que antes para ambos casos.

PERFORM es una orden PL/pgSQL, no SQL.  La diferencia es que el primero
se usa dentro de las funciones en ese lenguaje, mientras que el segundo
se usa externamente (por ejemplo cuando invocas una funcion en psql).
Es importante estar consciente de la diferencia.  Por ejemplo no tiene
sentido intentar usar PERFORM para invocar tu nueva funcion.

Te sugiero que hagas el cambio dentro de la funcion, luego invoques la
funcion con SELECT, y muestres el nuevo mensaje de error (necesariamente
debe ser distinto del error original).

-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
--
TIP 4: No hagas 'kill -9' a postmaster


[pgsql-es-ayuda] Re[2]: [pgsql-es-ayuda] Re[2]: Ejecutar una función que crea una vista con dblink

2008-07-11 Por tema Laura Martinelli

Con fecha Viernes, 11 de Julio de 2008, 11:54:51 a.m., escribió:

AH> Laura Martinelli escribió:
>> 
>> 
>>  Con fecha Viernes, 11 de Julio de 2008, 11:34:12 a.m., escribió:
>> 
>> AH> Laura Martinelli escribió:
>> 
>> >>   pero cuando la quiero ejecutar
>> >> 
>> >> SELECT dblink_db1_db2();
>> >> 
>> >>   me da el siguiente error:
>> >> 
>> >> Eror: select query has no destination for result data
>> >> Hint: if you want to discard the results, use PERFORM instead.
>> >> Context:Pl/pgSQl function "dblink_db1_db2" line 2 at SQL statement
>> >> 
>> >>   si pruebo con PERFORM dblink_db1_db2();
>> 
>> AH> Tienes que cambiar a PERFORM el dblink_connect().
>> 
>> Alvaro vos decís que dentro de la función escriba:
>> 
>> PERFORM dblink_connect('dbname=academicos user=postgres password=turnos');

AH> Si.

>> lo hice y despues llamo a la función con select y con perform y me
>> sigue dando los mismos errores que antes para ambos casos.

AH> PERFORM es una orden PL/pgSQL, no SQL.  La diferencia es que el primero
AH> se usa dentro de las funciones en ese lenguaje, mientras que el segundo
AH> se usa externamente (por ejemplo cuando invocas una funcion en psql).
AH> Es importante estar consciente de la diferencia.  Por ejemplo no tiene
AH> sentido intentar usar PERFORM para invocar tu nueva funcion.

AH> Te sugiero que hagas el cambio dentro de la funcion, luego invoques la
AH> funcion con SELECT, y muestres el nuevo mensaje de error (necesariamente
AH> debe ser distinto del error original).

Modifiqué la función cambiando el SELECT dblink_connect() por PERFORM

Y me dio el siguiente mensaje similar al anterior pero en la línea 6 y
no en la 2 como antes:

Eror: select query has no destination for result data
Hint: if you want to discard the results, use PERFORM instead.
Context: Pl/pgSQl function "dblink_db1_db2" line 6 at SQL statement

(Todo esto lo estoy haciendo desde el psql)
Saludos,
Laura
[EMAIL PROTECTED]


--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net


Re: [pgsql-es-ayuda] Re[2 ]: Ejecutar una funció n que crea una vista con dblink

2008-07-11 Por tema Alvaro Herrera
Laura Martinelli escribió:

> Modifiqué la función cambiando el SELECT dblink_connect() por PERFORM
> 
> Y me dio el siguiente mensaje similar al anterior pero en la línea 6 y
> no en la 2 como antes:
> 
> Eror: select query has no destination for result data
> Hint: if you want to discard the results, use PERFORM instead.
> Context: Pl/pgSQl function "dblink_db1_db2" line 6 at SQL statement

Ahora evidentemente debes cambiar el dblink_disconnect() a PERFORM
tambien :-)

Siempre que quieres invocar una funcion dentro de otra, y no te
interesa el resultado, debes usar PERFORM en vez de SELECT.

-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo 
agradecerán


[pgsql-es-ayuda] QuarkXPress

2008-07-11 Por tema Lorenzo Villarreal

Buenas:

Quisiera saber una cosa. Hay una empresa que hace sus catálogos con Publisher 
(queda un poco pobre en cuanto a diseño) pero para poner todos los datos de los 
libros que hay que poner en ese catálogo, utilizan una base de datos que va 
introduciendo el nombre, ISBN, etc... en cada campo con una integración que por 
lo visto tiene el Publisher. Yo de bases de datos no tengo ni idea, la verdad, 
y me han comentado que las bases de datos que utilizan aquí son PostgreSQL, así 
que os pregunto a vosotros directamente. Yo utilizo QuarkXPress 7, y me 
gustaría saber si existe algún plug-in para Quark que introduzca 
automáticamente datos en las maquetaciones como lo hace el Publisher. Muchas 
gracias, cualqueir ayuda será bien recibida. Entiendo que posiblemente no 
sepáis algo, pero cualquier ayuda o pista que me ayude a encontrarlo se 
agradece. Muchas gracias de nuevo

_
Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines para estar 
siempre a la última
Guapos y guapas, clips musicales y estrenos de cine. 

Re: [pgsql-es-ayuda] Re[2]: Ejecutar una función que crea una vista con dblink

2008-07-11 Por tema Jose Luis Balle
Fijate que hay dos SELECTS, el de la coneccion y el de la desconeccion.

CREATE OR REPLACE FUNCTION dblink_db1_db2() RETURNS int4 AS $$
BEGIN
PERFORM dblink_connect('dbname=academicos user=postgres password=turnos');
CREATE OR REPLACE VIEW public.prueba AS
 SELECT alumnos.dni
  FROM dblink('SELECT dni FROM alumnos'::text) alumnos(dni numeric(10,0));
PERFORM dblink_disconnect();
RETURN 1;
END;
$$ LANGUAGE plpgsql;


El día 11 de julio de 2008 11:54, Alvaro Herrera
<[EMAIL PROTECTED]> escribió:
> Laura Martinelli escribió:
>>
>>
>>  Con fecha Viernes, 11 de Julio de 2008, 11:34:12 a.m., escribió:
>>
>> AH> Laura Martinelli escribió:
>>
>> >>   pero cuando la quiero ejecutar
>> >>
>> >> SELECT dblink_db1_db2();
>> >>
>> >>   me da el siguiente error:
>> >>
>> >> Eror: select query has no destination for result data
>> >> Hint: if you want to discard the results, use PERFORM instead.
>> >> Context:Pl/pgSQl function "dblink_db1_db2" line 2 at SQL statement
>> >>
>> >>   si pruebo con PERFORM dblink_db1_db2();
>>
>> AH> Tienes que cambiar a PERFORM el dblink_connect().
>>
>> Alvaro vos decís que dentro de la función escriba:
>>
>> PERFORM dblink_connect('dbname=academicos user=postgres password=turnos');
>
> Si.
>
>> lo hice y despues llamo a la función con select y con perform y me
>> sigue dando los mismos errores que antes para ambos casos.
>
> PERFORM es una orden PL/pgSQL, no SQL.  La diferencia es que el primero
> se usa dentro de las funciones en ese lenguaje, mientras que el segundo
> se usa externamente (por ejemplo cuando invocas una funcion en psql).
> Es importante estar consciente de la diferencia.  Por ejemplo no tiene
> sentido intentar usar PERFORM para invocar tu nueva funcion.
>
> Te sugiero que hagas el cambio dentro de la funcion, luego invoques la
> funcion con SELECT, y muestres el nuevo mensaje de error (necesariamente
> debe ser distinto del error original).
>
> --
> Alvaro Herrerahttp://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
> --
> TIP 4: No hagas 'kill -9' a postmaster
>



-- 
Informático:
Persona falta de recursos que, partiendo de premisas falsas y de
especificaciones inconsistentes e incompletas, dirigido por
incompetentes y utilizando herramientas que no funcionan es capaz de
iniciar un proyecto de dudoso éxito realizando una obra de arte que
,por supuesto, es cara y no tiene otro fin que dar prestigio a la
empresa que ha contratado sus servicios.
http://islamanzana.es/desarrollo-de-software/definicion-de-informatico
--
TIP 8: explain analyze es tu amigo


[pgsql-es-ayuda] Re[2]: [pgsql-es-ayuda] Re[2]: Ejecutar una función que crea una vista con dblink

2008-07-11 Por tema Laura Martinelli

Con fecha Viernes, 11 de Julio de 2008, 12:48:31 p.m., escribió:

AH> Laura Martinelli escribió:

>> Modifiqué la función cambiando el SELECT dblink_connect() por PERFORM
>> 
>> Y me dio el siguiente mensaje similar al anterior pero en la línea 6 y
>> no en la 2 como antes:
>> 
>> Eror: select query has no destination for result data
>> Hint: if you want to discard the results, use PERFORM instead.
>> Context: Pl/pgSQl function "dblink_db1_db2" line 6 at SQL statement

AH> Ahora evidentemente debes cambiar el dblink_disconnect() a PERFORM
AH> tambien :-)

AH> Siempre que quieres invocar una funcion dentro de otra, y no te
AH> interesa el resultado, debes usar PERFORM en vez de SELECT.

Muchas gracias ahora sí me crea la vista!
Saludos


Saludos,
Laura
[EMAIL PROTECTED]


--
TIP 8: explain analyze es tu amigo


[pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Oscar Argueta




Tenga el Mejor de los dias

Podria alguien explicarme por que cuando hago 'pg_dump' a una base que
esta en produccion y luego la restauro (con 'pg_restore')  en otro host
que es  para pruebas, los procedimientos corren mas rapido que en
produccion.

Saludos
-- 






Oscar Argueta
Transtel, S.A.
2386-1231/39







Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Marco Vinicio Jimenez Rojas
No se si me equivoco, pero siento que lo que dices es muy logico, tu
servidor de pruebas no tiene la carga de proceso que tiene el de produccion,
puede ser ese un detalle, o tienes las configuraciones del postgres.conf
diferentes

El día 11 de julio de 2008 9:16, Oscar Argueta <
[EMAIL PROTECTED]> escribió:

>  Tenga el Mejor de los dias
>
> Podria alguien explicarme por que cuando hago 'pg_dump' a una base que esta
> en produccion y luego la restauro (con 'pg_restore')  en otro host que es
> para pruebas, los procedimientos corren mas rapido que en produccion.
>
> Saludos
> --
>
> *Oscar Argueta**Transtel, S.A.**2386-1231/39*
>
>


-- 

---
MVJR


[pgsql-es-ayuda] OT - QuarkXPress

2008-07-11 Por tema Jose Luis Balle
No se si trae un ODBC o algo parecido.
Si no, fijate si te va esto:
http://www.xclusive.com.au/products/details.asp?item=22000829
Y si no, fijate si no hay un foro de Quark.


El día 11 de julio de 2008 12:49, Lorenzo Villarreal
<[EMAIL PROTECTED]> escribió:
> Buenas:
>
> Quisiera saber una cosa. Hay una empresa que hace sus catálogos con
> Publisher (queda un poco pobre en cuanto a diseño) pero para poner todos los
> datos de los libros que hay que poner en ese catálogo, utilizan una base de
> datos que va introduciendo el nombre, ISBN, etc... en cada campo con una
> integración que por lo visto tiene el Publisher. Yo de bases de datos no
> tengo ni idea, la verdad, y me han comentado que las bases de datos que
> utilizan aquí son PostgreSQL, así que os pregunto a vosotros directamente.
> Yo utilizo QuarkXPress 7, y me gustaría saber si existe algún plug-in para
> Quark que introduzca automáticamente datos en las maquetaciones como lo hace
> el Publisher. Muchas gracias, cualqueir ayuda será bien recibida. Entiendo
> que posiblemente no sepáis algo, pero cualquier ayuda o pista que me ayude a
> encontrarlo se agradece. Muchas gracias de nuevo
>
> 
> Sigue de cerca las últimas tendencias y lo que más rompe MSN Vídeo



-- 
Informático:
Persona falta de recursos que, partiendo de premisas falsas y de
especificaciones inconsistentes e incompletas, dirigido por
incompetentes y utilizando herramientas que no funcionan es capaz de
iniciar un proyecto de dudoso éxito realizando una obra de arte que
,por supuesto, es cara y no tiene otro fin que dar prestigio a la
empresa que ha contratado sus servicios.
http://islamanzana.es/desarrollo-de-software/definicion-de-informatico
--
TIP 7: no olvides aumentar la configuración del "free space map"


Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Alvaro Herrera
Marco Vinicio Jimenez Rojas escribió:
> No se si me equivoco, pero siento que lo que dices es muy logico, tu
> servidor de pruebas no tiene la carga de proceso que tiene el de produccion,
> puede ser ese un detalle, o tienes las configuraciones del postgres.conf
> diferentes

Lo otro que puede ser es que no se haya hecho vacuum en el servidor de
produccion.

-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
--
TIP 5: ¿Has leído nuestro extenso FAQ?
 http://www.postgresql.org/docs/faqs.FAQ.html


Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Jose Luis Balle
Solo vacuum Alvaro?
Puede haber algo relacionado al orden en que ingresan los datos en la
base? indices creados desde cero?
Digo porque no tengo muy claro cómo trabaja el pg_dump. No hay un
"saneamiento" al ingresar todos los datos en una base nueva?


2008/7/11 Alvaro Herrera <[EMAIL PROTECTED]>:
> Marco Vinicio Jimenez Rojas escribió:
>> No se si me equivoco, pero siento que lo que dices es muy logico, tu
>> servidor de pruebas no tiene la carga de proceso que tiene el de produccion,
>> puede ser ese un detalle, o tienes las configuraciones del postgres.conf
>> diferentes
>
> Lo otro que puede ser es que no se haya hecho vacuum en el servidor de
> produccion.
>
> --
> Alvaro Herrerahttp://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
> --
> TIP 5: ¿Has leído nuestro extenso FAQ?
> http://www.postgresql.org/docs/faqs.FAQ.html
>



-- 
Informático:
Persona falta de recursos que, partiendo de premisas falsas y de
especificaciones inconsistentes e incompletas, dirigido por
incompetentes y utilizando herramientas que no funcionan es capaz de
iniciar un proyecto de dudoso éxito realizando una obra de arte que
,por supuesto, es cara y no tiene otro fin que dar prestigio a la
empresa que ha contratado sus servicios.
http://islamanzana.es/desarrollo-de-software/definicion-de-informatico
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo


Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Oscar Argueta




Lo que sucede es que, la carga de procesos en produccion es la misma
que en desarrollo ya que los procesos son de noche, por lo cual no
tiene mas carga que la que se este corriendo por obligacion en la
noche, es decir que el host de produccion solo atenderia a los
procedimientos nocturnos. 
En cuanto a la configuracion unicamente modifique
'maintenance_work_mem' que segun lo que he leido aumenta el rendimiento
cuando se realiza un restore, pero no es significativo, por ejemplo una
base que demora 10min en restaurarce ahora es 8min

Saludos

Marco Vinicio Jimenez Rojas wrote:
No
se si me equivoco, pero siento que lo que dices es muy logico, tu
servidor de pruebas no tiene la carga de proceso que tiene el de
produccion, puede ser ese un detalle, o tienes las configuraciones del
postgres.conf diferentes
  
  El día 11 de julio de 2008 9:16, Oscar
Argueta <[EMAIL PROTECTED]>
escribió:
  
Tenga el Mejor de los dias

Podria alguien explicarme por que cuando hago 'pg_dump' a una base que
esta en produccion y luego la restauro (con 'pg_restore')  en otro host
que es  para pruebas, los procedimientos corren mas rapido que en
produccion.

Saludos

-- 
Oscar Argueta
Transtel, S.A.
2386-1231/39


  
  
  
  
  
-- 
  
---
MVJR


-- 






Oscar Argueta
Transtel, S.A.
2386-1231/39







Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Alvaro Herrera
Jose Luis Balle escribió:
> Solo vacuum Alvaro?
> Puede haber algo relacionado al orden en que ingresan los datos en la
> base? indices creados desde cero?
> Digo porque no tengo muy claro cómo trabaja el pg_dump. No hay un
> "saneamiento" al ingresar todos los datos en una base nueva?

Podría haber problema en los índices también, claro, pero la falta de
vacuum sería lo más severo.  (Además que vacuum mantiene limpios a los
índices también, dentro de lo razonable)

-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
--
TIP 8: explain analyze es tu amigo


Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Alvaro Herrera
Oscar Argueta wrote:
> 
> 
> 
>   
>   
> 
> 
> Te comento, que por lo inexperto para realizar manteinimiento a bases
> de datos, en una ocasion corrimos VACUUM a una DB en produccion y
> provoco desintegracion en los datos, por eso ahora realizo
> rudimentariamente en la noche cada 3 meses un DUMP -> DROP ->
> CREATE -> RESTORE.

Eso lo explica todo.  Vacuum no es opcional.  Lee esto

http://www.postgresql.org/docs/8.3/static/maintenance.html

Por favor no escribas en HTML, y asegurate de tener siempre a la lista
en CC:.

-- 
Alvaro Herrera  http://www.amazon.com/gp/registry/5ZYLFMCVHXC
"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)
--
TIP 4: No hagas 'kill -9' a postmaster


[pgsql-es-ayuda] ERROR EN COMPILACION FUNCTION

2008-07-11 Por tema Fabio Arias
Muy buenos dias muchachos, estoy empezando con la creacion de funciones y
tengo este error y no se por que es?

Si me pueden dar una mano para mejorarlo les agradecere mucho

=== psql 1 ===
psql:129: ERROR:  syntax error at end of input
LINEA 1: SELECT


CREATE FUNCTION ANULAR_APUESTA(IDTRANSACCION INTEGER, COLILLA VARCHAR,
ACEPTACION_AEL VARCHAR, IDUSUARIO_REG VARCHAR) RETURNS INTEGER AS $$
DECLARE
USUARIO "TSO"."USUARIO"%ROWTYPE;
CUENTAUSUARIO "TSO"."CUENTA"%ROWTYPE;
DISTRIBUIDOR "TSO"."CLIENTE"%ROWTYPE;
CUENTADISTRIBUIDOR "TSO"."CUENTA"%ROWTYPE;
PUNTODEVENTA "TSO"."CLIENTE"%ROWTYPE;
TRANSACCION "TSO"."TRANSACCION"%ROWTYPE;
SALDOFINAL NUMERIC(10,2);
SALDOCOMISION NUMERIC(10,2);
COMISIONPRODUCTODIS "TSO"."COMISION"%ROWTYPE;
COMISIONPRODUCTOPDV "TSO"."COMISION"%ROWTYPE;
COMISION NUMERIC(10,2);
VALORCOMISION NUMERIC(10,2);
IDTRANSACCION_ANULACION INTEGER;
IDNOVEDAD INTEGER;
BEGIN
-- CONSULTAR TRANSACCION
SELECT * INTO TRANSACCION FROM "TSO"."TRANSACCION" WHERE
"TRAN_ID"=IDTRANSACCION;
IF NOT FOUND THEN
RAISE EXCEPTION 'NO EXISTE TRANSACCION %',IDTRANSACCION;
RETURN;
END IF;
-- BUSCAR USUARIO DE TRANSACCION
SELECT * INTO USUARIO FROM "TSO"."USUARIO" WHERE
"USUA_ID"=TRANSACCION."USUA_ID";
IF NOT FOUND THEN
RAISE EXCEPTION 'NO EXISTE USUARIO DE TRANSACCION %',IDTRANSACCION;
RETURN;
END IF;
SELECT * INTO CUENTAUSUARIO FROM "TSO"."CUENTA" WHERE USUARIO."CUEN_ID";

IF NOT FOUND THEN
RAISE EXCEPTION 'NO EXISTE CUENTA PARA USUARIO %',USUARIO."USUA_ID";
RETURN;
END IF;
SELECT * INTO PUNTODEVENTA FROM "TSO"."CLIENTE" WHERE
"CLIE_ID"=USUARIO."CLIE_ID";
IF NOT FOUND THEN
RAISE EXCEPTION 'NO EXISTE PUNTO DE VENTA PARA USUARIO
%',USUARIO."USUA_ID";
RETURN;
END IF;
SELECT * INTO DISTRIBUIDOR FROM "TSO"."CLIENTE" WHERE
"CLIE_ID"=PUNTODEVENTA."CLIE_PADRE";
IF NOT FOUND THEN
RAISE EXCEPTION 'NO EXISTE DISTRIBUIDOR PARA PUNTO DE VENTA
%',PUNTODEVENTA."CLIE_ID";
RETURN;
END IF;
SELECT * INTO CUENTADISTRIBUIDOR FROM "TSO"."CUENTA" WHERE
"CUEN_ID"=DISTRIBUIDOR."CUEN_ID";
IF NOT FOUND THEN
RAISE EXCEPTION 'NO EXISTE CUENTA PARA DISTRIBUIDOR
%',DISTRIBUIDOR."CLIE_ID";
RETURN;
END IF;

-- INSERTAR MOVIMIENTO DE REVERSO DE VENTA
SALDOFINAL := CUENTAUSUARIO."CUEN_SALDO"+TRANSACCION."TRAN_VALOR";

INSERT INTO "TSO"."MOVIMIENTOSCUENTA" (
"CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO",
"MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL",
"MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR")
VALUES(
CUENTAUSUARIO."CUEN_ID",IDTRANSACCION,13,now(),
0,SALDOFINAL,

CUENTAUSUARIO."CUEN_SOBREGIRO",CUENTAUSUARIO."CUEN_SALDO",IDUSUARIO_REG,TRANSACCION."TRAN_VALOR");

-- ACTUALIZAR EL SALDO DEL USUARIO
UPDATE "TSO"."CUENTA" SET
"CUEN_SALDO"="CUEN_SALDO"+TRANSACCION."TRAN_VALOR"
WHERE "CUEN_ID"=CUENTAUSUARIO."CUEN_ID";

-- BUSCAR COMISION LINEAL PDV
SELECT * INTO COMISIONPRODUCTOPDV FROM "TSO"."COMISION" WHERE
"USUA_ID"=USUARIO."USUA_ID" AND "PROD_ID"=TRANSACCION."PROD_ID"
AND "TICO_ID"=2;
IF NOT FOUND THEN
COMISION := 0;
ELSE
COMISION := COMISIONPRODUCTOPDV."COMI_VALOR";
END IF;
VALORCOMISION := TRANSACCION."TRAN_VALOR"*(COMISION/100);
SALDOCOMISION := SALDOFINAL;
SALDOFINAL := SALDOFINAL-VALORCOMISION;
-- INSERTAR MOVIMIENTO DE REVERSO DE COMISION
INSERT INTO "TSO"."MOVIMIENTOSCUENTA" (
"CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO",
"MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL",
"MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR")
VALUES(
CUENTAUSUARIO."CUEN_ID",IDTRANSACCION,14,now(),
0,SALDOFINAL,

CUENTAUSUARIO."CUEN_SOBREGIRO",SALDOCOMISION,IDUSUARIO_REG,VALORCOMISION);
-- ACTUALIZAR EL SALDO DEL USUARIO
UPDATE "TSO"."CUENTA" SET "CUEN_SALDO"="CUEN_SALDO"-VALORCOMISION
WHERE "CUEN_ID"=CUENTAUSUARIO."CUEN_ID";

-- BUSCAR COMISION LINEAL DIS
SELECT * INTO COMISIONPRODUCTODIS FROM "TSO"."COMISION" WHERE
"CLIE_ID"=DISTRIBUIDOR."CLIE_ID" AND "PROD_ID"=TRANSACCION."PROD_ID"
AND "TICO_ID"=3;
IF NOT FOUND THEN
COMISION := 0;
ELSE
COMISION := COMISIONPRODUCTODIS."COMI_VALOR";
END IF;
VALORCOMISION := TRANSACCION."TRAN_VALOR"*(COMISION/100);
SALDOFINAL := CUENTADISTRIBUIDOR."CUEN_SALDO"-VALORCOMISION;
-- INSERTAR REVERSO COMISION DE DISTRIBUIDOR
INSERT INTO "TSO"."MOVIMIENTOSCUENTA" (
"CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO",
"MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL",
"MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR")
VALUES(
CUENTADISTRIBUIDOR."CUEN_ID",IDTRANSACCION,15,now(),
0,SALDOFINAL,

CUENTADISTRIBUIDOR."CUEN_SOBREGIRO",CUENTADISTRIBUIDOR."CUEN_SALDO",IDUSUA

Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Miguel Beltran R.
Te falto mandar el correo a la lista

Un manual que encontre ahorita en español donde dan un poco de ejemplo
2001.encuentrolinux.cl/documentacion/PostgreSQL.pdf.gz

para mas busca en el historial de la lista

http://www.google.com.mx/search?q=explain+site%3Aarchives.postgresql.org%2Fpgsql-es-ayuda&ie=utf-8&oe=utf-8&aq=t&rls=com.frontmotion:es-AR:unofficial&client=firefox-a

El día 11 de julio de 2008 12:07, Oscar Argueta
<[EMAIL PROTECTED]> escribió:
> Gracias Miguel, fijate que por la poca experiencia del mantenimiento a base
> de datos,, lo que he estado realizando rudimentariamente, es que en la noche
> cuando el servicio no estan exigible, hago dump a la base , luego drop y  de
> ultimo createdb, restore para que los procesos corran tal y como en el host
> de pruebas. Con anterioridad habia realizado un VACUUM pero lo que provoco
> fue que se me desintegraran los datos, la razon la desconozco, ahora mi
> pregunta es el EXPLAIN/ANALYZE que servicio realiza o que tipo de
> mantenimiento realiza.
>
> Att.
>
> Miguel Beltran R. wrote:
>
> usa un explain (o es explain analyze?) para ver como se ejecuta casa
> consulta
>
> El día 11 de julio de 2008 10:16, Oscar Argueta
> <[EMAIL PROTECTED]> escribió:
>
>
> Tenga el Mejor de los dias
>
> Podria alguien explicarme por que cuando hago 'pg_dump' a una base que esta
> en produccion y luego la restauro (con 'pg_restore')  en otro host que es
> para pruebas, los procedimientos corren mas rapido que en produccion.
>
> Saludos
> --
>
> Oscar Argueta
> Transtel, S.A.
> 2386-1231/39
>
>
>
>
> --
>
> Oscar Argueta
> Transtel, S.A.
> 2386-1231/39



-- 

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


Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Alvaro Herrera
Oscar Argueta wrote:
> 
> 
> 
>   
>   
> 
> 
> Ahora para los tiempos de restauracion de las bases, el VACUUM tambien
> ayuda a que sea mas optimo?

No

-- 
Alvaro Herrera http://www.flickr.com/photos/alvherre/
"[PostgreSQL] is a great group; in my opinion it is THE best open source
development communities in existence anywhere."(Lamar Owen)
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía "unregister TuDirecciónDeCorreo" a [EMAIL PROTECTED])


Re: [pgsql-es-ayuda] ERROR EN COMPILACION FUNCTION

2008-07-11 Por tema Fabio Arias
Muy buenas tardes muchachos ya logre compilar la FUNCTIOn y crearla pero no
se como la puede ejecutar, alguno de uds me puede ayudar???

2008/7/11 Fabio Arias <[EMAIL PROTECTED]>:

> Muy buenos dias muchachos, estoy empezando con la creacion de funciones y
> tengo este error y no se por que es?
>
> Si me pueden dar una mano para mejorarlo les agradecere mucho
>
> === psql 1 ===
> psql:129: ERROR:  syntax error at end of input
> LINEA 1: SELECT
>
> 
> CREATE FUNCTION ANULAR_APUESTA(IDTRANSACCION INTEGER, COLILLA VARCHAR,
> ACEPTACION_AEL VARCHAR, IDUSUARIO_REG VARCHAR) RETURNS INTEGER AS $$
> DECLARE
> USUARIO "TSO"."USUARIO"%ROWTYPE;
> CUENTAUSUARIO "TSO"."CUENTA"%ROWTYPE;
> DISTRIBUIDOR "TSO"."CLIENTE"%ROWTYPE;
> CUENTADISTRIBUIDOR "TSO"."CUENTA"%ROWTYPE;
> PUNTODEVENTA "TSO"."CLIENTE"%ROWTYPE;
> TRANSACCION "TSO"."TRANSACCION"%ROWTYPE;
> SALDOFINAL NUMERIC(10,2);
> SALDOCOMISION NUMERIC(10,2);
> COMISIONPRODUCTODIS "TSO"."COMISION"%ROWTYPE;
> COMISIONPRODUCTOPDV "TSO"."COMISION"%ROWTYPE;
> COMISION NUMERIC(10,2);
> VALORCOMISION NUMERIC(10,2);
> IDTRANSACCION_ANULACION INTEGER;
> IDNOVEDAD INTEGER;
> BEGIN
> -- CONSULTAR TRANSACCION
> SELECT * INTO TRANSACCION FROM "TSO"."TRANSACCION" WHERE
> "TRAN_ID"=IDTRANSACCION;
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE TRANSACCION %',IDTRANSACCION;
> RETURN;
> END IF;
> -- BUSCAR USUARIO DE TRANSACCION
> SELECT * INTO USUARIO FROM "TSO"."USUARIO" WHERE
> "USUA_ID"=TRANSACCION."USUA_ID";
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE USUARIO DE TRANSACCION %',IDTRANSACCION;
> RETURN;
> END IF;
> SELECT * INTO CUENTAUSUARIO FROM "TSO"."CUENTA" WHERE
> USUARIO."CUEN_ID";
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE CUENTA PARA USUARIO
> %',USUARIO."USUA_ID";
> RETURN;
> END IF;
> SELECT * INTO PUNTODEVENTA FROM "TSO"."CLIENTE" WHERE
> "CLIE_ID"=USUARIO."CLIE_ID";
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE PUNTO DE VENTA PARA USUARIO
> %',USUARIO."USUA_ID";
> RETURN;
> END IF;
> SELECT * INTO DISTRIBUIDOR FROM "TSO"."CLIENTE" WHERE
> "CLIE_ID"=PUNTODEVENTA."CLIE_PADRE";
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE DISTRIBUIDOR PARA PUNTO DE VENTA
> %',PUNTODEVENTA."CLIE_ID";
> RETURN;
> END IF;
> SELECT * INTO CUENTADISTRIBUIDOR FROM "TSO"."CUENTA" WHERE
> "CUEN_ID"=DISTRIBUIDOR."CUEN_ID";
> IF NOT FOUND THEN
> RAISE EXCEPTION 'NO EXISTE CUENTA PARA DISTRIBUIDOR
> %',DISTRIBUIDOR."CLIE_ID";
> RETURN;
> END IF;
>
> -- INSERTAR MOVIMIENTO DE REVERSO DE VENTA
> SALDOFINAL := CUENTAUSUARIO."CUEN_SALDO"+TRANSACCION."TRAN_VALOR";
>
> INSERT INTO "TSO"."MOVIMIENTOSCUENTA" (
> "CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO",
> "MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL",
> "MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR")
> VALUES(
> CUENTAUSUARIO."CUEN_ID",IDTRANSACCION,13,now(),
> 0,SALDOFINAL,
>
> CUENTAUSUARIO."CUEN_SOBREGIRO",CUENTAUSUARIO."CUEN_SALDO",IDUSUARIO_REG,TRANSACCION."TRAN_VALOR");
>
> -- ACTUALIZAR EL SALDO DEL USUARIO
> UPDATE "TSO"."CUENTA" SET
> "CUEN_SALDO"="CUEN_SALDO"+TRANSACCION."TRAN_VALOR"
> WHERE "CUEN_ID"=CUENTAUSUARIO."CUEN_ID";
>
> -- BUSCAR COMISION LINEAL PDV
> SELECT * INTO COMISIONPRODUCTOPDV FROM "TSO"."COMISION" WHERE
> "USUA_ID"=USUARIO."USUA_ID" AND "PROD_ID"=TRANSACCION."PROD_ID"
> AND "TICO_ID"=2;
> IF NOT FOUND THEN
> COMISION := 0;
> ELSE
> COMISION := COMISIONPRODUCTOPDV."COMI_VALOR";
> END IF;
> VALORCOMISION := TRANSACCION."TRAN_VALOR"*(COMISION/100);
> SALDOCOMISION := SALDOFINAL;
> SALDOFINAL := SALDOFINAL-VALORCOMISION;
> -- INSERTAR MOVIMIENTO DE REVERSO DE COMISION
> INSERT INTO "TSO"."MOVIMIENTOSCUENTA" (
> "CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO",
> "MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL",
> "MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR")
> VALUES(
> CUENTAUSUARIO."CUEN_ID",IDTRANSACCION,14,now(),
> 0,SALDOFINAL,
>
> CUENTAUSUARIO."CUEN_SOBREGIRO",SALDOCOMISION,IDUSUARIO_REG,VALORCOMISION);
> -- ACTUALIZAR EL SALDO DEL USUARIO
> UPDATE "TSO"."CUENTA" SET "CUEN_SALDO"="CUEN_SALDO"-VALORCOMISION
> WHERE "CUEN_ID"=CUENTAUSUARIO."CUEN_ID";
>
> -- BUSCAR COMISION LINEAL DIS
> SELECT * INTO COMISIONPRODUCTODIS FROM "TSO"."COMISION" WHERE
> "CLIE_ID"=DISTRIBUIDOR."CLIE_ID" AND "PROD_ID"=TRANSACCION."PROD_ID"
> AND "TICO_ID"=3;
> IF NOT FOUND THEN
> COMISION := 0;
> ELSE
> COMISION := COMISIONPRODUCTODIS."COMI_VALOR";
> END IF;
> VALORCOMISION := TRANSACCION."TRAN_VALOR"*(COMISION/100);
> SALDOFINAL := CUENTADISTRIBUIDOR."CUEN_SALDO"-VALORCOMISION;
> -- I

Re: [pgsql-es-ayuda] ERROR EN COMPILACION FUNCTION

2008-07-11 Por tema Fabio Arias
Tambien como hago para ejecutarla desde PHP gracias! :D


El día 11 de julio de 2008 15:49, Fabio Arias <[EMAIL PROTECTED]> escribió:

> Muy buenas tardes muchachos ya logre compilar la FUNCTIOn y crearla pero no
> se como la puede ejecutar, alguno de uds me puede ayudar???
>
> 2008/7/11 Fabio Arias <[EMAIL PROTECTED]>:
>
> Muy buenos dias muchachos, estoy empezando con la creacion de funciones y
>> tengo este error y no se por que es?
>>
>> Si me pueden dar una mano para mejorarlo les agradecere mucho
>>
>> === psql 1 ===
>> psql:129: ERROR:  syntax error at end of input
>> LINEA 1: SELECT
>>
>> 
>> CREATE FUNCTION ANULAR_APUESTA(IDTRANSACCION INTEGER, COLILLA VARCHAR,
>> ACEPTACION_AEL VARCHAR, IDUSUARIO_REG VARCHAR) RETURNS INTEGER AS $$
>> DECLARE
>> USUARIO "TSO"."USUARIO"%ROWTYPE;
>> CUENTAUSUARIO "TSO"."CUENTA"%ROWTYPE;
>> DISTRIBUIDOR "TSO"."CLIENTE"%ROWTYPE;
>> CUENTADISTRIBUIDOR "TSO"."CUENTA"%ROWTYPE;
>> PUNTODEVENTA "TSO"."CLIENTE"%ROWTYPE;
>> TRANSACCION "TSO"."TRANSACCION"%ROWTYPE;
>> SALDOFINAL NUMERIC(10,2);
>> SALDOCOMISION NUMERIC(10,2);
>> COMISIONPRODUCTODIS "TSO"."COMISION"%ROWTYPE;
>> COMISIONPRODUCTOPDV "TSO"."COMISION"%ROWTYPE;
>> COMISION NUMERIC(10,2);
>> VALORCOMISION NUMERIC(10,2);
>> IDTRANSACCION_ANULACION INTEGER;
>> IDNOVEDAD INTEGER;
>> BEGIN
>> -- CONSULTAR TRANSACCION
>> SELECT * INTO TRANSACCION FROM "TSO"."TRANSACCION" WHERE
>> "TRAN_ID"=IDTRANSACCION;
>> IF NOT FOUND THEN
>> RAISE EXCEPTION 'NO EXISTE TRANSACCION %',IDTRANSACCION;
>> RETURN;
>> END IF;
>> -- BUSCAR USUARIO DE TRANSACCION
>> SELECT * INTO USUARIO FROM "TSO"."USUARIO" WHERE
>> "USUA_ID"=TRANSACCION."USUA_ID";
>> IF NOT FOUND THEN
>> RAISE EXCEPTION 'NO EXISTE USUARIO DE TRANSACCION
>> %',IDTRANSACCION;
>> RETURN;
>> END IF;
>> SELECT * INTO CUENTAUSUARIO FROM "TSO"."CUENTA" WHERE
>> USUARIO."CUEN_ID";
>> IF NOT FOUND THEN
>> RAISE EXCEPTION 'NO EXISTE CUENTA PARA USUARIO
>> %',USUARIO."USUA_ID";
>> RETURN;
>> END IF;
>> SELECT * INTO PUNTODEVENTA FROM "TSO"."CLIENTE" WHERE
>> "CLIE_ID"=USUARIO."CLIE_ID";
>> IF NOT FOUND THEN
>> RAISE EXCEPTION 'NO EXISTE PUNTO DE VENTA PARA USUARIO
>> %',USUARIO."USUA_ID";
>> RETURN;
>> END IF;
>> SELECT * INTO DISTRIBUIDOR FROM "TSO"."CLIENTE" WHERE
>> "CLIE_ID"=PUNTODEVENTA."CLIE_PADRE";
>> IF NOT FOUND THEN
>> RAISE EXCEPTION 'NO EXISTE DISTRIBUIDOR PARA PUNTO DE VENTA
>> %',PUNTODEVENTA."CLIE_ID";
>> RETURN;
>> END IF;
>> SELECT * INTO CUENTADISTRIBUIDOR FROM "TSO"."CUENTA" WHERE
>> "CUEN_ID"=DISTRIBUIDOR."CUEN_ID";
>> IF NOT FOUND THEN
>> RAISE EXCEPTION 'NO EXISTE CUENTA PARA DISTRIBUIDOR
>> %',DISTRIBUIDOR."CLIE_ID";
>> RETURN;
>> END IF;
>>
>> -- INSERTAR MOVIMIENTO DE REVERSO DE VENTA
>> SALDOFINAL := CUENTAUSUARIO."CUEN_SALDO"+TRANSACCION."TRAN_VALOR";
>>
>> INSERT INTO "TSO"."MOVIMIENTOSCUENTA" (
>> "CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO",
>> "MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL",
>> "MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR")
>> VALUES(
>> CUENTAUSUARIO."CUEN_ID",IDTRANSACCION,13,now(),
>> 0,SALDOFINAL,
>>
>> CUENTAUSUARIO."CUEN_SOBREGIRO",CUENTAUSUARIO."CUEN_SALDO",IDUSUARIO_REG,TRANSACCION."TRAN_VALOR");
>>
>> -- ACTUALIZAR EL SALDO DEL USUARIO
>> UPDATE "TSO"."CUENTA" SET
>> "CUEN_SALDO"="CUEN_SALDO"+TRANSACCION."TRAN_VALOR"
>> WHERE "CUEN_ID"=CUENTAUSUARIO."CUEN_ID";
>>
>> -- BUSCAR COMISION LINEAL PDV
>> SELECT * INTO COMISIONPRODUCTOPDV FROM "TSO"."COMISION" WHERE
>> "USUA_ID"=USUARIO."USUA_ID" AND "PROD_ID"=TRANSACCION."PROD_ID"
>> AND "TICO_ID"=2;
>> IF NOT FOUND THEN
>> COMISION := 0;
>> ELSE
>> COMISION := COMISIONPRODUCTOPDV."COMI_VALOR";
>> END IF;
>> VALORCOMISION := TRANSACCION."TRAN_VALOR"*(COMISION/100);
>> SALDOCOMISION := SALDOFINAL;
>> SALDOFINAL := SALDOFINAL-VALORCOMISION;
>> -- INSERTAR MOVIMIENTO DE REVERSO DE COMISION
>> INSERT INTO "TSO"."MOVIMIENTOSCUENTA" (
>> "CUEN_ID","TRAN_ID","TIMC_ID","MOCU_FECHAMOVIMIENTO",
>> "MOCU_SOBREGIROACTUAL", "MOCU_SALDOACTUAL",
>> "MOCU_SOBREGIRO","MOCU_SALDO", "MOCU_REGISTRADOPOR", "MOCU_VALOR")
>> VALUES(
>> CUENTAUSUARIO."CUEN_ID",IDTRANSACCION,14,now(),
>> 0,SALDOFINAL,
>>
>> CUENTAUSUARIO."CUEN_SOBREGIRO",SALDOCOMISION,IDUSUARIO_REG,VALORCOMISION);
>> -- ACTUALIZAR EL SALDO DEL USUARIO
>> UPDATE "TSO"."CUENTA" SET "CUEN_SALDO"="CUEN_SALDO"-VALORCOMISION
>> WHERE "CUEN_ID"=CUENTAUSUARIO."CUEN_ID";
>>
>> -- BUSCAR COMISION LINEAL DIS
>> SELECT * INTO COMISIONPRODUCTODIS FROM "TSO"."COMISION" WHERE
>> "CLIE_ID"=DISTRIBUIDOR."CLIE_ID" AND "PROD_ID"=TRANSACCION."PROD_ID"
>> AND "TICO_ID"=3;
>> 

Re: [pgsql-es-ayuda] ERROR EN COMPILACION FUNCTION

2008-07-11 Por tema Juan Manuel Fernandez
2008/7/11 Fabio Arias <[EMAIL PROTECTED]>:
> Tambien como hago para ejecutarla desde PHP gracias! :D

Para ejecutar la función,

* SELECT FROM ANULAR_APUESTA(parametros...);

Y desde PHP:

* Usas pg_connect para conectarte a la DB;
* Usas pg_query para realizar el query;
* Usas pg_fetch_row, pg_fetch_assoc o equivalente para levantar los
resultados...

Espero te ayude, acá esta la info posta sobre php:

 www.php.net

Saludos,

  Juan
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía "unregister TuDirecciónDeCorreo" a [EMAIL PROTECTED])


Re: [pgsql-es-ayuda] Herencia?

2008-07-11 Por tema Alvaro Herrera
Arturo Munive escribió en mayo de 2007:

> osea en conclusión
> hasta ahora la herencia en postgresql solo abarca el hecho
> de 'heredar' los campos de una tabla en sus hijas
> mas no el hecho de tratar un registro de la tabla hija como si fuese
> un registro de la tabla padre, o hacer polimorfismo
>
> es decir si tengo una función
> f1(p padre)
>
> no puedo
> select f1(h);
>
> donde h sea un registro del tipo de la tabla hija.
>
>
> estoy en lo cierto??
>
> por curiosidad piensan dar soporte a eso en algún momento...

Efectivamente, como ya has observado, no puedes hacer eso :-)  Y además,
no hay nadie trabajando en hacerlo funcionar que yo sepa.  Es un
problema que existe desde hace años pero es bastante difícil y no ha
habido la motivación suficiente.

-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda


Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Miguel Beltran R.
el EXPLAIN lo que hace es decir como se ejecuta la consulta, si esta
usando los indices por ejemplo en la consulta te puede salir INDEX
SCAN o SEQUENCE SCAN.

Para tu caso, las consultas que haces en tus dos equipos deben arrojar
los mismos resultados; si son diferentes es que las configuraciones de
postgres.conf estab diferentes

El 11/07/08, Oscar Argueta <[EMAIL PROTECTED]> escribió:
> El  'EXPLAIN' me ayuda tambien a los tiempos de restauracion de las bases de
> datos?
>
> Saludos
>
>
>
> Miguel Beltran R. wrote:
> Te falto mandar el correo a la lista

Un manual que encontre ahorita en
> español donde dan un poco de
> ejemplo
2001.encuentrolinux.cl/documentacion/PostgreSQL.pdf.gz

para
> mas busca en el historial de la
> lista

http://www.google.com.mx/search?q=explain+site%3Aarchives.postgresql.org%2Fpgsql-es-ayuda&ie=utf-8&oe=utf-8&aq=t&rls=com.frontmotion:es-AR:unofficial&client=firefox-a

El
> día 11 de julio de 2008 12:07, Oscar
> Argueta
<[EMAIL PROTECTED]> escribió:

> Gracias Miguel, fijate que por la poca experiencia del mantenimiento a
> base
de datos,, lo que he estado realizando rudimentariamente, es que en la
> noche
cuando el servicio no estan exigible, hago dump a la base , luego drop
> y de
ultimo createdb, restore para que los procesos corran tal y como en el
> host
de pruebas. Con anterioridad habia realizado un VACUUM pero lo que
> provoco
fue que se me desintegraran los datos, la razon la desconozco, ahora
> mi
pregunta es el EXPLAIN/ANALYZE que servicio realiza o que tipo
> de
mantenimiento realiza.

Att.

Miguel Beltran R. wrote:

usa un explain (o
> es explain analyze?) para ver como se ejecuta casa
consulta

El día 11 de
> julio de 2008 10:16, Oscar
> Argueta
<[EMAIL PROTECTED]> escribió:


Tenga
> el Mejor de los dias

Podria alguien explicarme por que cuando hago
> 'pg_dump' a una base que esta
en produccion y luego la restauro (con
> 'pg_restore') en otro host que es
para pruebas, los procedimientos corren
> mas rapido que en produccion.

Saludos
--

Oscar Argueta
Transtel,
> S.A.
2386-1231/39




--

Oscar Argueta
Transtel, S.A.
2386-1231/39

>


>
> --
> Oscar Argueta
Transtel, S.A.
2386-1231/39
>


-- 

Lo bueno de vivir un dia mas
es saber que nos queda un dia menos de vida
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda


Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Oscar Argueta




Mas que las consultas, el problema es mas con los DELETE, UPDATE  e
INSERTS, ya que el postgres.conf es un espejo de lo que esta en
produccion


Miguel Beltran R. wrote:

  el EXPLAIN lo que hace es decir como se ejecuta la consulta, si esta
usando los indices por ejemplo en la consulta te puede salir INDEX
SCAN o SEQUENCE SCAN.

Para tu caso, las consultas que haces en tus dos equipos deben arrojar
los mismos resultados; si son diferentes es que las configuraciones de
postgres.conf estab diferentes

El 11/07/08, Oscar Argueta <[EMAIL PROTECTED]> escribió:
  
  
El  'EXPLAIN' me ayuda tambien a los tiempos de restauracion de las bases de
datos?

Saludos



Miguel Beltran R. wrote:
Te falto mandar el correo a la lista

  
  
Un manual que encontre ahorita en
  
  
español donde dan un poco de
ejemplo

  
  2001.encuentrolinux.cl/documentacion/PostgreSQL.pdf.gz

para
  
  
mas busca en el historial de la
lista

  
  
http://www.google.com.mx/search?q=explain+site%3Aarchives.postgresql.org%2Fpgsql-es-ayuda&ie=utf-8&oe=utf-8&aq=t&rls=com.frontmotion:es-AR:unofficial&client=firefox-a

El
  
  
día 11 de julio de 2008 12:07, Oscar
Argueta

  
  <[EMAIL PROTECTED]> escribió:

  
  
Gracias Miguel, fijate que por la poca experiencia del mantenimiento a
base

  
  de datos,, lo que he estado realizando rudimentariamente, es que en la
  
  
noche

  
  cuando el servicio no estan exigible, hago dump a la base , luego drop
  
  
y de

  
  ultimo createdb, restore para que los procesos corran tal y como en el
  
  
host

  
  de pruebas. Con anterioridad habia realizado un VACUUM pero lo que
  
  
provoco

  
  fue que se me desintegraran los datos, la razon la desconozco, ahora
  
  
mi

  
  pregunta es el EXPLAIN/ANALYZE que servicio realiza o que tipo
  
  
de

  
  mantenimiento realiza.

Att.

Miguel Beltran R. wrote:

usa un explain (o
  
  
es explain analyze?) para ver como se ejecuta casa

  
  consulta

El día 11 de
  
  
julio de 2008 10:16, Oscar
Argueta

  
  <[EMAIL PROTECTED]> escribió:


Tenga
  
  
el Mejor de los dias

  
  
Podria alguien explicarme por que cuando hago
  
  
'pg_dump' a una base que esta

  
  en produccion y luego la restauro (con
  
  
'pg_restore') en otro host que es

  
  para pruebas, los procedimientos corren
  
  
mas rapido que en produccion.

  
  
Saludos
--

Oscar Argueta
Transtel,
  
  
S.A.

  
  2386-1231/39




--

Oscar Argueta
Transtel, S.A.
2386-1231/39

  
  

  
  
--
Oscar Argueta

  
  Transtel, S.A.
2386-1231/39
  
  

  


-- 






Oscar Argueta
Transtel, S.A.
2386-1231/39







Re: [pgsql-es-ayuda] Migrar una base de LATIN1 a UTF

2008-07-11 Por tema Gabriel Hermes Colina Zambra



> >
> > Doh, sorry, usé la versión 8.0 para verificar :-)
> >

No me quedo claro si el tema se resolvio con el Switch -E, de pg_dump

Por las dudas publico las opciones del mismo para el control de la salida.

Opciones que controlan el contenido de la salida:
  -a, --data-only  extrae sólo los datos, no el esquema
  -b, --blobs  incluye objetos grandes en la extracción
  -c, --clean  limpia (tira) el esquema antes de su creación
  -C, --create incluye comandos para crear la base de datos
   en la extracción
  -d, --insertsextrae los datos usando INSERT, en vez de COPY
  -D, --column-inserts extrae los datos usando INSERT con nombres
   de columnas
  -E, --encoding=CODIFIC  extrae los datos con la codificación CODIFIC
  -n, --schema=ESQUEMA extrae sólo el esquema nombrado
  -N, --exclude-schema=ESQUEMA
   NO extrae el o los esquemas listados
  -o, --oids   incluye OIDs en la extracción
  -O, --no-owner   en formato de sólo texto, no reestablecer
   los dueños de los objetos
  -s, --schema-onlyextrae sólo el esquema, no los datos
  -S, --superuser=NAME especifica el nombre del superusuario a usar en
   el formato de sólo texto
  -t, --table=TABLEextrae sólo la tabla nombrada
  -T, --exclude-table=TABLA
   extrae sólo la tabla nombrada
  -x, --no-privileges  no extrae los privilegios (grant/revoke)
  --disable-dollar-quoting deshabilita el uso de «delimitadores de dólar»,
   usa delimitadores de cadena estándares
  --disable-triggers   deshabilita los disparadores (triggers) durante el
   restablecimiento de la extracción de sólo-datos
  --use-set-session-authorization
   usa comandos SESSION AUTHORIZATION en lugar de
   comandos OWNER TO
Atte
Gabriel Colina

__
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis! 
Regístrate ya - http://correo.espanol.yahoo.com/
--
TIP 7: no olvides aumentar la configuración del "free space map"


Re: [pgsql-es-ayuda] pg_dump y pg_restore

2008-07-11 Por tema Jaime Casanova
2008/7/11 Alvaro Herrera <[EMAIL PROTECTED]>:
> Oscar Argueta wrote:
>> 
>> 
>> 
>>   
>>   
>> 
>> 
>> Te comento, que por lo inexperto para realizar manteinimiento a bases
>> de datos, en una ocasion corrimos VACUUM a una DB en produccion y
>> provoco desintegracion en los datos, por eso ahora realizo
>> rudimentariamente en la noche cada 3 meses un DUMP -> DROP ->
>> CREATE -> RESTORE.
>

y que version de postgres fue esa?

-- 
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 87171157
--
TIP 8: explain analyze es tu amigo


[pgsql-es-ayuda] Server doesn`t listen

2008-07-11 Por tema dAnkO Vera
Hola amigos del foro,
Siempre yo leyendo sus post me ayudan mucho

Hoy me paso algo extraño,
Mi windows (XP)  no arrancó por un error en el config  de la carpeta
'system32, (un mal apagado seguramente )
luego de recuperarlo con la consola de recuperacion (valga la redundancia),
me encuentro con que no puedo acceder via  pgAdmin a mi base pgsql
dandome el sigte error : " Server doesn`t lsten"
por lo que no veo mas mi base,
He probado algunas ideas que lei en los foros, pero no sucede nada
agradeceria cualquier ayuda, y alguna manera via consola por ultimo  para
poder recuperar la base,
agradecido,

Danko


Re: [pgsql-es-ayuda] Server doesn`t listen

2008-07-11 Por tema Jaime Casanova
On Fri, Jul 11, 2008 at 11:46 PM, dAnkO Vera <[EMAIL PROTECTED]> wrote:
> Hola amigos del foro,
> Siempre yo leyendo sus post me ayudan mucho
>
> Hoy me paso algo extraño,
> Mi windows (XP)  no arrancó por un error en el config  de la carpeta
> 'system32, (un mal apagado seguramente )
> luego de recuperarlo con la consola de recuperacion (valga la redundancia),
> me encuentro con que no puedo acceder via  pgAdmin a mi base pgsql
> dandome el sigte error : " Server doesn`t lsten"
> por lo que no veo mas mi base,


revisa si el servcio de postgres esta iniciado (en panel de
control->herramientas administrativas->servicios)


-- 
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 87171157
--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo 
agradecerán