Re: Trigger y funciones

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: cristian <clopez(at)sol(dot)info(dot)unlp(dot)edu(dot)ar>
Cc: postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Trigger y funciones
Date: 2006-02-15 01:48:03
Message-ID: 20060215014803.GF32543@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

cristian escribió:

> CREATE FUNCTION createDateOnly() RETURNS TRIGGER AS '
> BEGIN
> SELECT * INTO hora FROM dominio;
> NEW.date = to_date(to_char(NEW.timestamp - interval 'hora hours',
> 'YYYYMMDD'),'YYYYMMDD');
> RETURN NEW;
> END;

Tienes que usar la variable fuera de un literal de cadena, por ejemplo
asi:

CREATE FUNCTION createDateOnly() RETURNS TRIGGER AS '
BEGIN
SELECT * INTO hora FROM dominio;
NEW.date = NEW.timestamp - hora * '1 hours'::interval;
RETURN NEW;
END;

Esa mala costumbre de estar usando to_date y to_char para todo, cuando
es claramente innecesario, es bastante nociva ... De ser posible, evita
las conversiones a texto como si fueran plaga (gripe aviar, que está de
moda). Supongo que es otra de las malas costumbres de la gente que
viene de Oracle.

Por supuesto que esta funcion ni siquiera compila, porque tiene
problemas con las comillas y la variable date no esta declarada, pero
espero que se entienda la idea.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-02-15 01:53:57 Re: Backups
Previous Message Alvaro Herrera 2006-02-15 01:43:55 Re: Busqueda utilizando LIKE