From: | "Linder Poclaba" <linder(dot)poclaba(at)gmail(dot)com> |
---|---|
To: | "La Pasion Del Rio" <lapasiondelrio(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Re: Duda sobre Función |
Date: | 2006-06-02 14:24:26 |
Message-ID: | 5aa69e1b0606020724q343769f7qedfedadb995eaa42@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Si en la version 7.4 no funciona $$ ("dollar-quoted"), desde la version 8
para adelante todo bien, los delimitadores $$ son mas sencillos de usar,
porque si utilizas comillas simples como delimitadores, en el cuerpo del
programa si quieres usar comilla simple tienes que duplicarlo de igual
manera la diagonal inversa.
Se puede tener disponible para todas las bases de datos, creala para
template1.
On 6/2/06, La Pasion Del Rio <lapasiondelrio(at)gmail(dot)com> wrote:
>
> Bueno, ya me di cuenta, la versión, tengo 7.4 y lo miré para 8.1. Ya está
> todo corriendo ok.
>
> La duda que todavía sigo teniendo es si se puede tener este lenguaje
> disponible para todas las bases de datos o se debe crear la función
> "plpgsql_call_handler()" para cada base de datos donde se use.
>
> Muchas Gracias.
>
> PD. Vamos a ver si con un poco de tiempo puedo poner lo que aprendo de
> postgres en mi página www.hermas.tk
>
>
> 2006/6/2, La Pasion Del Rio < lapasiondelrio(at)gmail(dot)com>:
> >
> > Vale, ya vi el error, no tenía instalado el plpgsql en mi base de datos
> > con lo cual el LANGUAGE SQL estaba mal, además los $$ sobraban con las
> > comillas simples es suficiente.
> >
> > Ya tengo mi función aunque no he podido crear la función del manual:
> >
> > CREATE FUNCTION plpgsql_validator(oid) RETURNS void AS
> > '$libdir/plpgsql' LANGUAGE C;
> >
> > El error "ERROR: no se encuentra la función "plpgsql_validator" en el
> > archivo "/usr/lib/pgsql/plpgsql.so" " ¿Alguna idea para poder crearla?
> >
> > ¿Esto debo hacerlo en todas las bases de datos donde quiera crear
> > funciones o lo tengo que hacer solo en templates1 y valdría para el resto?
> >
> > Y ya de paso (aunque eso aun no lo he mirado muy bien) ¿Cómo se ejecuta
> > esta función, "select * from totales(2)"?
> >
> > Muchas Gracias.
> >
> > 2006/6/2, La Pasion Del Rio < lapasiondelrio(at)gmail(dot)com>:
> >
> > > Estoy probando con las funciones y no tengo claro una cosita, he
> > > estado mirando en google y en el manual de postgres y no logro dar con el
> > > problema. En la función lo único que quiero es recorrer la tabla y obtener
> > > la suma de unos registros. La función es la siguiente:
> > > CREATE FUNCTION totales(integer) RETURNS real AS $$'
> > > DECLARE
> > > total real;
> > > reg RECORD;
> > > banco ALIAS FOR $1;
> > > BEGIN SELECT INTO reg * FROM segsoc WHERE codbanco=banco;
> > > IF reg.empresa IS NULL THEN
> > > RETURN 0;
> > > ELSE total:=0;
> > > FOR reg IN SELECT * FROM segsoc WHERE codbanco=banco ORDER BY
> > > empresa LOOP
> > > total:=reg.importe+total;
> > > END LOOP;
> > > RETURN total;
> > > END IF;END;
> > > $$'
> > > LANGUAGE 'SQL';
> > >
> > > Y me suelta el error siguiente al ejecutar el pg_query de php "Query
> > > failed: ERROR: syntax error en o cerca de "$" at character 50"
> > >
> > > Si me pudieran decir que significa ese $$, es que no tengo claro su
> > > uso, hay funciones en los ejemplos que he visto que lo ponen y en otra no, y
> > > estoy un poco liado. Si quito el $$ me da problema en "real". ¿Alguna idea?
> > >
> > > Muchísimas Gracias a todos-as
> > >
> >
> >
>
From | Date | Subject | |
---|---|---|---|
Next Message | Linder Poclaba | 2006-06-02 14:33:57 | Re: Usuarios Actualmente Conectados |
Previous Message | Leonel Nunez | 2006-06-02 14:19:36 | Re: Consulta sobre los fuentes de Postgresql 8.1 para Sarge |