[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Tamaño de Base Datos

2016-05-10 Por tema Herman Estaban
Jaime gracias por la respuesta.

Saludos.

El lun., 9 may. 2016 a las 16:38, Jaime Casanova (<
jaime.casan...@2ndquadrant.com>) escribió:

> 2016-05-09 12:04 GMT-05:00 Herman Esteban :
> > Hola nuevamente, he creado desde pgadmin una nueva BD pero no encontre
> > alguna opción en la que pueda digitar el tamaño que quiero para esa BD.
> Por
> > defecto cual es el tamaño que pgsql le da a una BD nueva y esta
> incrementa
> > sola?
> >
>
> Saludos Herman,
>
> En PostgreSQL, el tamaño de una base de datos está dado por los
> objetos y datos que contenga. Por ejemplo, una base de datos recién
> creada normalmente solo contiene tablas del sistema (catálogos) y sus
> datos, lo cual ocupa aproximadamente 7MB.
>
> Conforme vayas creando tablas e insertando datos la base de datos irá
> creciendo en tamaño.
>
> --
> Jaime Casanova  www.2ndQuadrant.com
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>


[pgsql-es-ayuda] Funcion con SELECT

2016-05-12 Por tema Herman Estaban
 

Hola a todos, he estado buscando como crear una función con un SELECT
y leyendo en la documentación:

http://www.postgresql.org/docs/current/static/sql-select.html

Encontre el siguiente los siguientes ejemplos:

This example shows how to use a function in the FROM clause, both with and
without a column definition list:

CREATE FUNCTION distributors(int) RETURNS SETOF distributors AS $$
SELECT * FROM distributors WHERE did = $1;
$$ LANGUAGE SQL;

SELECT * FROM distributors(111);
 did |name
-+-
 111 | Walt Disney

CREATE FUNCTION distributors_2(int) RETURNS SETOF record AS $$
SELECT * FROM distributors WHERE did = $1;
$$ LANGUAGE SQL;

SELECT * FROM distributors_2(111) AS (f1 int, f2 text);
 f1  | f2
-+-
 111 | Walt Disney


Y hice pruebas con un select simple:

1ro:

CREATE OR REPLACE FUNCTION F_CONSULTA_PARAMETRO(VARCHAR) RETURNS SETOF
MA_PERSONAL AS $$
SELECT *
  FROM MA_PERSONAL
 WHERE IDCODIGO = $1;
$$ LANGUAGE SQL;

SELECT * FROM F_CONSULTA_PARAMETRO('33');

2do:

CREATE OR REPLACE FUNCTION F_CONSULTA_PARAMETRO2(VARCHAR) RETURNS
SETOF record AS $$
SELECT APPATER || ' ' || APMATER || ' ' || NOMBRES AS PERSONA
  FROM MA_PERSONAL
 WHERE IDCODIGO = $1;
$$ LANGUAGE SQL;

SELECT * FROM F_CONSULTA_PARAMETRO2('33') AS (PERSONA VARCHAR);

El 1ro retorna toda la tabla me puede servir para cosas simples que necesite.

El 2do me podria servir para select mas personalizados con joins pero
tendria que declarar siempre el campo o los campos de la tablas o
tablas involucradas en el select?

Hay manera de crear una función sin necesidad de estar declarando los campos?

Saludos


[pgsql-es-ayuda] PLPGSQL o SQL

2016-05-13 Por tema Herman Estaban
Buenos días, cuando debo usar LANGUAGE plpgsql o sql?

Hay ventajas de uno al otro?

Gracias de antemano.

Saludos.


Re: [pgsql-es-ayuda] PLPGSQL o SQL

2016-05-16 Por tema Herman Estaban
Gracias por la respuesta.

Saludos.

El vie., 13 may. 2016 a las 13:21, Francisco Olarte ()
escribió:

> 2016-05-13 16:39 GMT+02:00 Herman Estaban :
> > Buenos días, cuando debo usar LANGUAGE plpgsql o sql?
>
> Cuando te vaya bien, depende de lo que quieras hacer.
>
> > Hay ventajas de uno al otro?
>
> SQL te vale para poco mas que masajear un poco los datos o hacer 4
> cuentas, pero es mas sencillo. Incluso para cuando quieres filtrar sin
> mas algun acceso, o forzar accesos por funciones a alguna tabla a base
> de jugar con los permisos de tablas y funciones viene muy bien. Pero
> no te deja mucho mas que juntar tres queries en fila.
>
> Si tienes necesidad de hacer algo medianamente complejo, necesitaras
> plpgsql, que es un lenguage mas complejo pero te deja meter logica mas
> interesante.
>
> Francisco Olarte.
>


Re: [pgsql-es-ayuda] Funcion con SELECT

2016-05-16 Por tema Herman Estaban
Gracias por la respuesta.

Hice 2 funciones con LANGUAGE 'plpgsql'

---
--1ra Funcion

CREATE OR REPLACE FUNCTION F_CONSULTA_PLPGSQL1(param varchar)
RETURNS TABLE(r_idcodigo integer, r_nombre varchar)
   AS
$$
BEGIN
RETURN QUERY SELECT idcodigo, nombre
FROM MA_PRUEBA WHERE nombre LIKE param;
END;
$$
  LANGUAGE 'plpgsql' VOLATILE;

SELECT r_idcodigo, r_nombre FROM F_CONSULTA_PLPGSQL1('%LUIS%');

---
--2da Funcion

CREATE OR REPLACE FUNCTION F_CONSULTA_PLPGSQL2(param varchar)
RETURNS TABLE(r_idcodigo integer, r_nombre varchar)
   AS
$$
DECLARE
var_r record;
BEGIN
 FOR var_r IN(SELECT idcodigo, nombre
FROM MA_PRUEBA WHERE nombre LIKE param)  LOOP
r_idcodigo := var_r.idcodigo ; r_nombre := var_r.nombre;
RETURN NEXT;
 END LOOP;
END;
$$
  LANGUAGE 'plpgsql' VOLATILE;

SELECT r_idcodigo, r_nombre FROM F_CONSULTA_PLPGSQL2('%LUIS%');
---

Observe lo siguiente

- Ambas funciones usan *RETURNS TABLE*
- La 1ra Función trabaja con *RETURN QUERY*
- La 2da Función trabaja con *FOR*

Mi preguntas son:

1.Solo puedo usar *RETURNS TABLE* en funciones de LANGUAGE 'plpgsql'?
Ya que no me dejo con LANGUAGE 'sql'
2.Que diferencia hay en usar *RETURN QUERY* vs *FOR*?
Por favor si pueden responder a mis dudas.
Saludos.



El vie., 13 may. 2016 a las 11:20, Alvaro Herrera ()
escribió:

> Herman Estaban escribió:
>
> > 2do:
> >
> > CREATE OR REPLACE FUNCTION F_CONSULTA_PARAMETRO2(VARCHAR) RETURNS
> > SETOF record AS $$
> > SELECT APPATER || ' ' || APMATER || ' ' || NOMBRES AS PERSONA
> >   FROM MA_PERSONAL
> >  WHERE IDCODIGO = $1;
> > $$ LANGUAGE SQL;
> >
> > SELECT * FROM F_CONSULTA_PARAMETRO2('33') AS (PERSONA VARCHAR);
>
> > El 2do me podria servir para select mas personalizados con joins pero
> > tendria que declarar siempre el campo o los campos de la tablas o
> > tablas involucradas en el select?
> >
> > Hay manera de crear una función sin necesidad de estar declarando los
> campos?
>
> El sistema necesita saber qué tipo retorna la función antes de
> ejecutarla.  Si usas RETURNS SETOF RECORD entonces debes indicar el tipo
> al momento de invocar la función, que es la cláusula AS.  Si usas un
> nombre de tipo específico, la cláusula AS no es necesaria.  Si necesitas
> un tipo que no corresponde con ninguna tabla, puedes crearlo:
>
> CREATE TYPE retorno_de_funcion AS (campo1 int, campo2 text, campo3 date);
>
> CREATE FUNCTION  RETURNS SETOF retorno_de_funcion ...
>
> --
> Álvaro Herrerahttp://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>


Re: [pgsql-es-ayuda] Funcion con SELECT

2016-05-17 Por tema Herman Estaban
Alvaro muchas gracias por tu tiempo.

Saludos.

El lun., 16 may. 2016 a las 17:18, Alvaro Herrera ()
escribió:

> Herman Estaban escribió:
>
> > Observe lo siguiente
> >
> > - Ambas funciones usan *RETURNS TABLE*
>
> Hmm, no recordaba esta opción.
>
> > - La 1ra Función trabaja con *RETURN QUERY*
> > - La 2da Función trabaja con *FOR*
> >
> > Mi preguntas son:
> >
> > 1.Solo puedo usar *RETURNS TABLE* en funciones de LANGUAGE 'plpgsql'?
> > Ya que no me dejo con LANGUAGE 'sql'
>
> Me imagino que específico de cada lenguaje.
>
> > 2.Que diferencia hay en usar *RETURN QUERY* vs *FOR*?
>
> Que yo recuerde no hay ninguna, en la práctica -- ambas funcionan de la
> misma manera (ambas acumulan los registros en un tuplestore, ambas
> ejecutan la consulta hasta que termine).
>
> --
> Álvaro Herrerahttp://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>


[pgsql-es-ayuda] Información de objetos de una BD

2016-05-18 Por tema Herman Estaban
Hola a todos, como puedo obtener la información de los objetos (tablas,
vistas, funciones, usuarios etc) de una BD por codigo?

Saludos.


[pgsql-es-ayuda] Re: [MASSMAIL][pgsql-es-ayuda] Información de objetos de una BD

2016-05-18 Por tema Herman Estaban
Marcos muchas gracias era lo que buscaba.

Saludos.

El mié., 18 may. 2016 a las 9:49, Marcos Michel Martinez Perez (<
mmartin...@uci.cu>) escribió:

> revisa esto y mira a ver si te sirve
>
>
>
> http://postgresql.uci.cu/manuales/Compendio%20de%20consultas%20al%20%C3%BAtiles.%20Cat%C3%A1logo%20de%20PostgreSQL.pdf
>
>
> El 18/05/2016 a las 10:41, Herman Estaban escribió:
> > Hola a todos, como puedo obtener la información de los objetos
> > (tablas, vistas, funciones, usuarios etc) de una BD por codigo?
> >
> > 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-ayuda
>


[pgsql-es-ayuda] LIKE a campo integer

2016-06-21 Por tema Herman Estaban
Buenas tardes, todos los campos primary key y foreign key de mis tablas son
de tipo de datos INTEGER y BIGINT.

Y tengo la necesidad de hacer un LIKE a un campo de tipo INTEGER en un
SELECT.

Que tan eficiente es hacer esto:

WHERE CAST(ID_TIP_REG AS CHAR) LIKE '1%'

LIKE es mas rapido con CHAR, VARCHAR que con INTEGER?

Espero sus comentarios.

Saludos.


Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-21 Por tema Herman Estaban
Hellmuth gracias por la respuesta.

Necesito el LIKE para devolver todo los codigos y tambien elegir un codigo
especifico.

WHERE CAST(ID_TIP_REG AS CHAR) LIKE param;

param : Que puede ser '%' todos o cualquiera de estos codigos 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 99.

Como ya habia mencionado los campos primary key y foreign key son de tipo
de datos INTEGER o BIGINT, tengo tambien campos indicadores  que son de
tipo CHAR(1) 'A' = ANULADO, 'V' = VIGENTE, '0'= INACTIVO, '1' = INACTIVO
por dar unos ejemplos, deberia trabajar estos con tipo de dato INTEGER,
seria mas eficiente, ya que trabajo los campos primary key y foreign key
porque INTEGER  es mas rapido en las busquedas que usando CHAR.

Saludos.

El mar., 21 jun. 2016 a las 16:16, Hellmuth Vargas ()
escribió:

> Hola Herman
>
>
> Pensaría que tiene algo  como:
>
> dominio de ID_TIP_REG:
> de 100 a 199 -> categoria1
> de 200 a 299 -> categoria2
> de 300 a 399 -> categoria3
> 
>
>
> Si es así no debería utilizar LIKE sin mas bien un BETWEEN
>
>
> WHERE ID_TIP_REG BETWEEN  AND  categoria>
>
>
>
>
> El 21 de junio de 2016, 16:01, Herman Estaban
> escribió:
>
>> Buenas tardes, todos los campos primary key y foreign key de mis tablas
>> son de tipo de datos INTEGER y BIGINT.
>>
>> Y tengo la necesidad de hacer un LIKE a un campo de tipo INTEGER en un
>> SELECT.
>>
>> Que tan eficiente es hacer esto:
>>
>> WHERE CAST(ID_TIP_REG AS CHAR) LIKE '1%'
>>
>> LIKE es mas rapido con CHAR, VARCHAR que con INTEGER?
>>
>> Espero sus comentarios.
>>
>> Saludos.
>>
>
>
>
> --
> Cordialmente,
>
> Ing. Hellmuth I. Vargas S.
> Esp. Telemática y Negocios por Internet
> Oracle Database 10g Administrator Certified Associate
> EnterpriseDB Certified PostgreSQL 9.3 Associate
>
>


Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-21 Por tema Herman Estaban
Gracias por las respuestas.

Voy a explicar mejor lo que requiero.

Tengo una tabla PRD_REG con 02 campos:

ID_TIP_REG INTEGER
NOM_TIP_REG VARCHAR(25)

Esta tabla tiene 14 registros y esta registrado asi:

ID_TIP_REG  |  NOM_TIP_REG
1   | DETALLADO
2   | MARCADO
3   | PROGRAMADO
4   | CON DISEÑO
5   | SIN DISEÑO
.
.
.
99 | SIN REGISTRAR

He creado un funcion, que tiene un parametro (param) de tipo INTEGER, en
esta funcion la que esta tabla PRD_REG se cruza con JOIN con otra tabla y
en el WHERE quiero usar un LIKE ya que el usuario puede elegir cualquiera
de los codigos de la tabla PRD_REG, como tambien todos por eso necesito el
LIKE.

Por eso utilizo esto:
WHERE CAST(ID_TIP_REG AS CHAR) LIKE param;

Pero que tan eficiente es usar LIKE con campos INTEGER, es una practica
recomendable?

Debo trabajar con campos CHAR para usar el LIKE quizas por rapides?

Saludos.


Re: [pgsql-es-ayuda] LIKE a campo integer

2016-06-22 Por tema Herman Estaban
Gracias por sus aportes.

Saludos.

El mié., 22 jun. 2016 a las 9:48, Alvaro Herrera ()
escribió:

> eduardo reyes escribió:
> > Buenas.
> >  Lo mas simple para esto es usar un OR
> > --
> > SELECT *
> >FROM PRD_REG
> >   WJERE (ID_TIP_REG = param OR param = 0)
>
> Ya ven lo que pasa cuando uno responde antes de desayunar -- tu
> solución es mucho más simple.  Pero yo usaría NULL en vez de 0:
>
>  SELECT *
> FROM PRD_REG
>WHERE (ID_TIP_REG = param OR param IS NULL)
>
> --
> Á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
>


Re: [pgsql-es-ayuda] Pregunta sobre indices

2016-06-23 Por tema Herman Estaban
Hola, aprovechando el hilo.Les comento mi caso, existe una tabla en una
base de datos SQL Server de nombre SFT_MAEPROD en la que se almacena la
informacion de los productos que vende la empresa (ropa).

Esta tabla tenie mas de 100 campos y no esta normalizada, en verdad todas
las tablas de esta base de datos en SQL Server no estan normalizadas.

Se esta creando una nueva base de datos en PostgreSQL para dejar de usar ya
el SQL Server.

Una vez que se termine de hacer la migración de información de SQL Server a
PostgreSQL, tendre que armar consultas y reportes (JOINS) con distintos
tipos de filtros, necesitare indices para tener un tiempo de respuesta
favorable

He normalizado esta tabla SFT_MAEPROD en PostgreSQL, y he pensado crear
indices, mi idea es que quede asi:

CREATE TABLE public.sft_maesede (
  id_sft_sede   serial NOT NULL PRIMARY KEY, -->id sede
  nom_sft_sede  varchar(50), --nombre sede

CREATE TABLE public.sft_maealma (
  id_sft_almaserial NOT NULL PRIMARY KEY, --> id almacen
  id_sft_sedeinteger NOT NULL,  --id sede > (CREAR INDICE)
  nom_sft_alma   varchar(50), --nombre almacen

CREATE TABLE public.sft_maeprod (
  id_sft_prod  bigserial NOT NULL PRIMARY KEY, -->id producto
  id_sft_fami  integer NOT NULL,  --id familia  > (CREAR
INDICE)
  id_sft_clas  integer NOT NULL,  --id clase> (CREAR
INDICE)
  id_sft_mode  integer NOT NULL,  --id modelo   > (CREAR INDICE)
  id_sft_line  integer NOT NULL,  --id linea > (CREAR
INDICE)
  id_sft_mate  integer NOT NULL,  --id material  > (CREAR INDICE)
  id_sft_colo  integer NOT NULL,  --id color> (CREAR
INDICE)
  id_sft_tall  integer NOT NULL,  --id talla   > (CREAR
INDICE)
  id_sft_temp  integer NOT NULL,  --id temporada  > (CREAR INDICE)
  id_sft_gene  integer NOT NULL,  --id genero   > (CREAR INDICE)
  id_sft_pres  integer NOT NULL,  --id presentacion  > (CREAR
INDICE)
  nom_stf_prod varchar(100),  --nombre producto > (CREAR
INDICE)

CREATE TABLE public.sft_prodxalm (
  id_sft_codi  bigserial NOT NULL PRIMARY KEY, --> id
  id_sft_sede  integer NOT NULL,  --id sede  > (CREAR
INDICE)
  id_sft_alma  integer NOT NULL,  --id almacen> (CREAR INDICE)
  id_sft_prod  bigint NOT NULL,   --id producto > (CREAR
INDICE)

Estoy en lo correcto?,

Espero sus comentarios.

Saludos.


Re: [pgsql-es-ayuda] Pregunta sobre indices

2016-06-23 Por tema Herman Estaban
Alvaro gracias por la respuesta.

Pense que al hacer en un SELECT varios JOINS a una tabla, podria usar
indices en los campos FK de las tablas relacionadas. Ya que usare los
campos FK para los diversos filtros que se requiere, para los reportes y
consultas.

Existe alguna sugerencia de que campos deben ser indices?

Saludos.


Re: [pgsql-es-ayuda] Pregunta sobre indices

2016-06-23 Por tema Herman Estaban
Alvaro gracias por tu tiempo, estare escribiendo de nuevo cuando ya este
terminando las consultas y reportes.

Saludos.


El jue., 23 jun. 2016 a las 15:26, Alvaro Herrera ()
escribió:

> Herman Estaban escribió:
> > Alvaro gracias por la respuesta.
> >
> > Pense que al hacer en un SELECT varios JOINS a una tabla, podria usar
> > indices en los campos FK de las tablas relacionadas. Ya que usare los
> > campos FK para los diversos filtros que se requiere, para los reportes y
> > consultas.
> >
> > Existe alguna sugerencia de que campos deben ser indices?
>
> Depende de las consultas.  Lo mejor es tener índices en las columnas que
> son más usadas y tienen mejor selectividad; el resto de las cláusulas
> del WHERE se implementan mirando el dato de cada tupla, sin necesidad de
> tener un índice específicamente.  Lo mejor es tener un catálogo de todas
> las consultas que se van a usar, para saber realmente qué campos se
> usarán para búsquedas y cuáles tienen poca importancia.  (Asimismo, hay
> consultas que se ejecutan 10 veces al dia y otros sólo 5 veces;
> obviamente es importante darle prioridad a optimizar la consulta que es
> más frecuente).
>
> --
> Álvaro Herrerahttp://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>


[pgsql-es-ayuda] Crear usuario para conectarse a BD

2016-07-02 Por tema Herman Estaban
Hola a todos, necesito crear un usuario y solo pueda conectarse a una
determinada BD. Por favor podrian darme un ejemplo.

Saludos.


Libre
de virus. www.avast.com

<#DDB4FAA8-2DD7-40BB-A1B8-4E2AA1F9FDF2>


Re: [pgsql-es-ayuda] Crear usuario para conectarse a BD

2016-07-05 Por tema Herman Estaban
Gracias por la respuesta.

Siempre me tendre que conectar con el usuario postgres desde el PGAdmin,
podria conectarme desde un usuario especifico?

Voy a leer acerca del archivo pg_hba.con.

Saludos.

El lun., 4 jul. 2016 a las 15:03, Martín Marqués ()
escribió:

> El 02/07/16 a las 15:41, Herman Estaban escribió:
> > Hola a todos, necesito crear un usuario y solo pueda conectarse a una
> > determinada BD. Por favor podrian darme un ejemplo.
>
> Al usuario lo creás como a cualquier otro (pero con permiso de conexión)
> y luego asignas y/o revocas los permisos de conexión a cada base de
> datos en pg_hba.conf
>
> Saludos,
>
> --
> Martín Marquéshttp://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, 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
>


Re: [pgsql-es-ayuda] Stock Actual de Productos

2016-07-12 Por tema Herman Estaban
 Alberto , en SALDOS_PRODUCTOS_CAB registraras el saldo o stock inicial y
en SALDOS_PRODUCTOS_DET registraras todas las entradas y salidas y como
calcular el stock actual?

Genero una pregunta sobre este tema, es posible tener un stock actualizado
en linea? cual es el diseño mas sugerible en estos casos?

Saludos.



El 12 de julio de 2016, 14:40, Carlos Enrique Perez - Syswarp - Direccion <
carlos.pe...@syswarp.com.ar> escribió:

> De nada, espero que te sirva. Te aclaro que esta implementado y funciona.
>
>
> El mar, 12-07-2016 a las 19:35 +, Alberto Cuevas escribió:
>
> Hola Carlos, gracias por responder.
>
>
> El mar., 12 jul. 2016 a las 14:15, Carlos Enrique Perez - Syswarp -
> Direccion () escribió:
>
> Te paso a modo de resumen lo que tenemos armado en un ERP tratando de
> marcar algunas tablas satelites por su importancia nada mas.
>
> . Familias
>
> . Grupos
>Esta tabla puede tener una relacion directa a una familia o a un grupo
> padre, esto te va a permitir que si algun cliente quiere hacer una apertura
> mas profunda que dividir por familia y grupo, la puedas hacer como quieras
> (algo asi tiene SAP).
>
>
>
> Interesante, claro y asi no te llenas de tablas.
>
>
>
> Articulos
> . Aca van campos de los que mencionas en tu modelo, aunque quede a tu
> criterio, yo pondria todo tipo de costo y precio (ej promedio ponderado,
> ultima compra... idem con la utilizacion de unidad de medida principal y
> alternativas por si necesitas hacer conversiones (ej. cajas, botellas).
>
>
>
> Tengo una tabla PRODUCTO_PRECIOS, donde registro todo tipo de precios del
> producto (precio de venta, precio descuento, etc)
>
>
> Tengo una tabla UNIDADES_MEDIDA, donde registro todas las unidades de
> medida del producto con sus equivalencias.
>
>
> . Movimientos de stock
>Aca basicamente registra todo los datos necesarios que se necesitan
> para hacer entradas / salidas (y cambios de depositos ) que no son mas que
> una salida de un deposito y una entrada al otro en forma atomica.
>
>
>
> En esta tabla registras todos los movimientos del producto, si pense en
> tener una sola tabla.
>
>
> . Historico de stock
>Todo lo necesario para tener las cantidades de cada producto a fecha.
>
>
> Esta es similar a Movimientos de stock?
>
>
>
> . Vista materializada con las cantidades actuales.
>
>
>
> No he trabajado con vistas materializadas empezare a leer al respecto.
>
>
>
> Hay lugares donde te piden mas ampliacion respecto a los datos. Ej. cuando
> se importa /exporta a otro pais te piden datos como lote, despacho, fecha
> de vencimiento, pais de origen, etc.
> . tenes que ver que hacer cuando los productos se vencen. (en
> general se decide con el cliente) ej. hacerle un proceso batch.
>
>
> Claro tienes razón.
>
>
> y respecto a eso de hacer siempre un insert, yo en tu lugar si es que
> lo decis para tener una suerte de auditoria completa, pondria un _his de
> cada una de las tablas que tenga un trigger en la tabla origen que las vaya
> alimentando.
>
> Si mas o menos se entiende lo que quise expresar y consideras que te
> sirve, si queres te paso por privado el modelo de datos basico.
> saludos.
>
>
>
>
> --
>   Carlos Enrique Perez
> SYSWARP - SRL - Direccion
>


[pgsql-es-ayuda] Error en Funcion con parametro timestamp

2016-09-07 Por tema Herman Estaban
Hola estimados estoy creando una función con los siguientes parametros:

CREATE OR REPLACE FUNCTION public.f_listado_contratos
(
  IN  ar_id_pers integer,
  IN  ar_fec_conttimestamp
)

En el WHERE coloco esto:

WHERE public.contratos.id_pers = ar_id_pers
AND to_date(public.contratos.fec_cont , 'dd/mm/') = ar_fec_cont

Y se presenta el siguiente mensaje de error:

SQL Error: ERROR:  no existe la función to_date(
LINE 109:  AND TO_DATE(public.contratos.fec_cont, 'dd/mm/') =

El campo de la tabla y el parametro son de tipo timestamp.

Gracias por su atención.

Saludos.


Re: [pgsql-es-ayuda] Error en Funcion con parametro timestamp

2016-09-07 Por tema Herman Estaban
Gracias por responder Anthony, voy a leer la documentación.

Modifique, el parametro:

IN ar_fec_contchar(10)

Y modifique en el WHERE:

AND to_char(public.contratos.fec_cont, 'dd/mm/') = ar_fec_cont

No me presenta ningún error.

Pero mi pregunta es, esto es una buena practica?

Saludos.

El mié., 7 sept. 2016 a las 21:22, Anthony Sotolongo ()
escribió:

> Hola Herman, si te dice el error que no existe la función, es porque no
> existe una función to_date que se le pase un timestamp, según la
> documentación(
> https://www.postgresql.org/docs/9.5/static/functions-formatting.html)
> existe una función to_date(text, text) y si el parámetro es
> timestamp y el campo de la tabla también, compáralos y ya, no hay que
> convertirlos, pero si quieres dejarlos en formato de fecha castealos y ya 
> ar_fec_cont
> ::date , y si por casualidad quieres algo más  de detalle puede que la
> función date_trunc te pueda ayudar (
> https://www.postgresql.org/docs/9.5/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC
> )
>
> Saludos
>
> On 07/09/16 23:00, Herman Estaban wrote:
>
> Hola estimados estoy creando una función con los siguientes parametros:
>
> CREATE OR REPLACE FUNCTION public.f_listado_contratos
> (
>   IN  ar_id_pers integer,
>   IN  ar_fec_conttimestamp
> )
>
> En el WHERE coloco esto:
>
> WHERE public.contratos.id_pers = ar_id_pers
> AND to_date(public.contratos.fec_cont , 'dd/mm/') = ar_fec_cont
>
> Y se presenta el siguiente mensaje de error:
>
> SQL Error: ERROR:  no existe la función to_date(
> LINE 109:  AND TO_DATE(public.contratos.fec_cont, 'dd/mm/') =
>
> El campo de la tabla y el parametro son de tipo timestamp.
>
> Gracias por su atención.
>
> Saludos.
>
>
>
>


Re: [pgsql-es-ayuda] Error en Funcion con parametro timestamp

2016-09-07 Por tema Herman Estaban
Anthony, debí leer antes los enlaces que me pasaste.

Me quedo claro.

Gracias por tu apoyo.

Saludos.

El mié., 7 sept. 2016 a las 21:46, Herman Estaban ()
escribió:

> Gracias por responder Anthony, voy a leer la documentación.
>
> Modifique, el parametro:
>
> IN ar_fec_contchar(10)
>
> Y modifique en el WHERE:
>
> AND to_char(public.contratos.fec_cont, 'dd/mm/') = ar_fec_cont
>
> No me presenta ningún error.
>
> Pero mi pregunta es, esto es una buena practica?
>
> Saludos.
>
> El mié., 7 sept. 2016 a las 21:22, Anthony Sotolongo (<
> asotolo...@gmail.com>) escribió:
>
>> Hola Herman, si te dice el error que no existe la función, es porque no
>> existe una función to_date que se le pase un timestamp, según la
>> documentación(
>> https://www.postgresql.org/docs/9.5/static/functions-formatting.html)
>> existe una función to_date(text, text) y si el parámetro es
>> timestamp y el campo de la tabla también, compáralos y ya, no hay que
>> convertirlos, pero si quieres dejarlos en formato de fecha castealos y ya 
>> ar_fec_cont
>> ::date , y si por casualidad quieres algo más  de detalle puede que la
>> función date_trunc te pueda ayudar (
>> https://www.postgresql.org/docs/9.5/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC
>> )
>>
>> Saludos
>>
>> On 07/09/16 23:00, Herman Estaban wrote:
>>
>> Hola estimados estoy creando una función con los siguientes parametros:
>>
>> CREATE OR REPLACE FUNCTION public.f_listado_contratos
>> (
>>   IN  ar_id_pers integer,
>>   IN  ar_fec_conttimestamp
>> )
>>
>> En el WHERE coloco esto:
>>
>> WHERE public.contratos.id_pers = ar_id_pers
>> AND to_date(public.contratos.fec_cont , 'dd/mm/') = ar_fec_cont
>>
>> Y se presenta el siguiente mensaje de error:
>>
>> SQL Error: ERROR:  no existe la función to_date(
>> LINE 109:  AND TO_DATE(public.contratos.fec_cont, 'dd/mm/') =
>>
>> El campo de la tabla y el parametro son de tipo timestamp.
>>
>> Gracias por su atención.
>>
>> Saludos.
>>
>>
>>
>>


[pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [MASSMAIL] [pgsql-es-ayuda] Diseño de Tabla para Empleados, Clientes y Proveedores

2016-09-15 Por tema Herman Estaban
Hola, podria usar una sola tabla para los movimientos llamense compras,
ventas, traslados, etc, que manejarlas por tablas separadas?

Gracias de antemano por su respuesta.

Saludos.

El mié., 14 sept. 2016 a las 16:41, felix gonzales ()
escribió:

> En mi empresa, a la tabla la denominamos "auxiliar" y es donde se guardan
> los datos personales, de tributación,  contacto, etc. Dicha tabla esta
> disponible en los módulos de compras y ventas.
>
> si deseo saber quienes son clientes lo relaciono con ventas y para el caso
> de proveedores con compras.
>
> saludos!
>
> 2016-09-14 16:14 GMT-05:00 Alberto Cuevas :
>
>> Hellmuth gracias, voy a seguir sus consejos.
>>
>> Saludos.
>>
>> El mié., 14 sept. 2016 a las 16:11, Hellmuth Vargas ()
>> escribió:
>>
>>> Perdón  es Alberto
>>>
>>>
>>> El 14 de septiembre de 2016, 16:10, Hellmuth Vargas
>>> escribió:
>>>
 Hola Alverto

 El tema es que la tabla persona  debe contener la informacion de todos
 los actores que se involucran en su sistema y ya en otra tabla (factura,
 cliente ,etc) es donde se clasifica y/o se le atribuye un rol la persona
  para un evento dado (cliente, provedor, contacto, etc)

 Por ejemplo  es un sistema de facturación, una persona puede ser
 proveedor, y para otra factura un cliente y para una tercera un contacto y
 sin embargo sigue siendo la misma persona.






 El 14 de septiembre de 2016, 16:03, Gilberto Castillo<
 gilberto.casti...@etecsa.cu> escribió:

>
> > Alvaro gracias por responder.
> >
> > En la tabla Persona, relacione con la tabla Tipo_Persona para saber
> que
> > tipo es, muy aparte por cada tipo tendre una tabla sea Cliente,
> Empleado,
> > Proveedor, etc, de ser necesario.
>
> Alberto, no se si lees bien lo que Alvaro te plantea, Se supone que si
> la
> persona tiene un id_p en la tabla clientes es porque es un cliente, y
> así
> sucesivamente, o sea, la tabla tipo_persona me sobra en ese modelo.
>
>
> > En Persona_Relacion, solo tendre la relacion entre persona para los
> > contactos.
> >
> > Bueno eso es lo que se me ocurre.
> >
> > Saludos.
> >
> > El mié., 14 sept. 2016 a las 15:37, Alvaro Herrera (<
> > alvhe...@2ndquadrant.com>) escribió:
> >
> >> Alberto Cuevas escribió:
> >> > Gracias por responder, bueno tengo una 1ra versión del modelo que
> >> deseo
> >> > implementar:
> >> >
> >> > *Modelo 1:*
> >> >
> >> > Crear las tablas:
> >>
> >> no entiendo por qué tus personas tienen un "tipo" (en ambos modelos
> >> propuestos).  Un registro de la tabla personas debería representar
> a una
> >> persona, y luego tienes una table de clientes que pueden llevar un
> tipo
> >> y una FK a la tabla personas.  ¿no?
> >>
> >> --
> >> Álvaro Herrerahttps://www.2ndQuadrant.com/
> >> PostgreSQL Development, 24x7 Support, Remote DBA, Training &
> Services
> >>
> >
>
>
> --
> Saludos,
> Gilberto Castillo
> ETECSA, La Habana, Cuba
>
>


 --
 Cordialmente,

 Ing. Hellmuth I. Vargas S.
 Esp. Telemática y Negocios por Internet
 Oracle Database 10g Administrator Certified Associate
 EnterpriseDB Certified PostgreSQL 9.3 Associate


>>>
>>>
>>> --
>>> Cordialmente,
>>>
>>> Ing. Hellmuth I. Vargas S.
>>> Esp. Telemática y Negocios por Internet
>>> Oracle Database 10g Administrator Certified Associate
>>> EnterpriseDB Certified PostgreSQL 9.3 Associate
>>>
>>>
>
>
> --
> Felix Gonzales
>
>


[pgsql-es-ayuda] Actualizar versión de PG

2016-10-11 Por tema Herman Estaban
Hola a todos, tengo poco tiempo utilizando PG, instale la versión 9.5 y
quisiera actualizar a la ultima versión 9.6, que debo hacer?

Gracias por su tiempo.

Saludos.