Ir al contenido


Foto

Functions with PSQL in Firebird 3


  • Por favor identifícate para responder
4 respuestas en este tema

#1 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 30 julio 2015 - 05:44

Saludos.

 

Una funcionalidad bastante esperada.

 

Info.


  • 4

#2 cram

cram

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 832 mensajes
  • LocationMisiones, Argentina

Escrito 30 julio 2015 - 07:44

Interesante, gracias Rolphy

 

Saludos


  • 0

#3 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 31 julio 2015 - 08:11

Es un rasgo que facilita mucho las cosas.

 

Un cordial saludo.


  • 0

#4 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 31 julio 2015 - 09:43

Yo ya vengo usando procedimientos almacenados como funciones desde hace tiempo, funcionan en cualquier versión de Firebird.

 

Veamos un ejemplo, supongamos esta función con la nueva sintaxis de Firebird 3 :


php
  1. create function date2text (d timestamp) returns varchar(20) as
  2. begin
  3.   return cast(d as varchar(20));

Esto se utilizaría de esta forma :
 


php
  1. select nombre, date2text(fecha_nacimiento)
  2. from clientes

 
Pues bien, mi pseudo-función para que haga lo mismo se construye de esta forma :
 


php
  1. create procedure date2text (d timestamp) returns (t varchar(20)) as
  2. begin
  3.   t = cast(d as varchar(20));
  4.   suspend;

 
Y la forma de utilizarlo dentro de una consulta sería :
 


php
  1. select nombre, (select t from date2text(fecha_nacimiento))
  2. from clientes

Como podéis ver hay que añadir el suspend en el procedimiento almacenado, para que devuelva ese resultado en forma de dataset. Ese resultado en forma de dataset lo podemos recoger mediante una subconsulta en cualquier lugar donde querramos utilizar esta pseudo-función.

 

Esta claro que la sintaxis no es tan limpia como las verdaderas funciones, pero funciona de maravilla, es tremendamente útil, y no hay que esperar a Firebird 3, lo podéis usar en cualquier base de datos existente.


  • 2

#5 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 31 julio 2015 - 11:34

Interesante funcionalidad la que se viene con Firebird 3. Creo a muchos les parecerá más sencilla esa forma. Lo escribes en el notepad y luego lo importas y listo. A usar.

 

Esta nueva característica para quienes usan los SP como funciones (como es el caso de Marc) y a los que se le hizo costumbre, quizá les parezca de menos.

 

A mi en lo personal no me atrae mucho la idea de usar un SP como una UDF. Mi cabeza me dice que por algo está pensado y diseñada cada cosa. Con esto nuevo, ya me quema los cables y tendré que ponerme a estudiar de nuevo para ver cuales son los límites de cada cosa; que puede hacer o que no pueden hacer cada uno.

 

Saludos,


  • 0




IP.Board spam blocked by CleanTalk.