Thursday, May 8, 2008

Re: [pgsql-es-ayuda] Algún manual de pl/pgsql

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

PRiNCiPiTo escribió:
> Hola a todos,
> he conseguido hacer mi primer trigger, con la ayuda de la lista, y ahora
> estoy intentando documentarme sobre el lenguaje pl/pgsql para lograr que
> la función haga lo que necesito.
> Concretamente lo que quiero hacer es que extraiga de un campo date los
> dos últimos dígitos del año y luego concatenarlo con otros e insertarlo
> en otro campo.
>
> Ahora mismo tengo esto:
>
> CREATE OR REPLACE FUNCTION codigo_barras()
> RETURNS "trigger" AS
> $BODY$BEGIN
> new.codigobarras := '08'||( new.idformato * 10^9)+( new.idmarca *
> 10^7)+ new.idproducto::integer;
> return new;
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;
> ALTER FUNCTION codigo_barras() OWNER TO postgres;
>
>
> Entonces lo que quiero hacer es que el 08 lo extraiga del campo
> fechaproduccion (2008-05-09)
> No se si plpgsql soporta legth o comandos como tail de unix o si para
> poder sacar esos dos caracteres tendré que hacerlo con un puntero o lo
> que sea..
>
> Si alguien me puede orientar con este tema en concreto o informarme
> sobre donde buscar un buen manual de plpgsql se lo agradecería mucho.
>
> Un saludo a todos

Puedes formatear la salida. Fijate:

# SELECT current_date;
date
- ------------
2008-05-08
(1 fila)

# SELECT to_char(current_date, 'yy');
to_char
- ---------
08
(1 fila)

Substituyes current_date por el campo de la tabla y listo.

Espero que te sirva. :-D


- --


< ¡¡Nos vemos!! >
----------------------------
\
\
.::!!!!!!!:.
.!!!!!:. .:!!!!!!!!!!!!
~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
:$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
$$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
$$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
"*$bd$$$$ '*$$$$$$$$$$$o+#"
"""" """""""
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIIs5yK7lGsMchFswRAtVbAJ0TyhQrFEVc2EF0XgJtd1/APcryDgCfUiF6
OmqtaGWYWMDyp8Yi7zPKwfg=
=AsZS
-----END PGP SIGNATURE-----
--
TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda

No comments: