Re: Ayuda sobre script & function

From: Julio Rivero <jcrmlima(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)surnet(dot)cl>
Cc: pgsql-es postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda sobre script & function
Date: 2005-05-25 16:49:47
Message-ID: d34a12b605052509495e05d4a9@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Muchas gracias Alvaro, lo arregle tal como dijiste y me funciono
perfecto!!!.
Un saludo.

On 5/25/05, Alvaro Herrera <alvherre(at)surnet(dot)cl> wrote:
>
> On Wed, May 25, 2005 at 11:15:52AM -0500, Julio Rivero wrote:
> > Hola a todos, voy aprox. 3 meses con postgresql y tengo un problema, he
> > creado una funcion para crear usuarios de acuerdo a los parametros que
> le
> > paso a la funcion, como son usuario y contraseña, y cuando lo ejecuto
> para
> > hacer una prueba me dice que CREATE USER no existe... estoy haciendo
> algo
> > mal por ahi???,.. por favor si pudieran darme una mano:
>
> Claro, el problema es que estas usando comillas dobles cuando deberias
> estar usando comillas simples. No debes hacer
>
> "CREATE USER " || ...
>
> sino
> 'CREATE USER ' || ...
>
> Ahora, al momento de crear una funcion, el asunto de las comillas se
> complica porque el cuerpo mismo de una funcion va entre comillas. Por
> lo tanto tienes que duplicarlas:
>
> ''CREATE USER '' || ...
> Observa que son dos comillas simples, no una comilla doble.
> Otra alternativa es usar demarcado de dolar:
>
>
> CREATE FUNCTION .... AS $$
>
> declare ...
> ...
> vs_execute := 'CREATE USER ' || ...
>
> $$;
>
> El demarcado de dolar permite ahorrarte el lio de cuantas comillas
> tienes que poner, etc. Tambien puedes hacer esto
>
> CREATE FUNCTION .... AS $func$
>
> declare ...
> ...
> vs_execute := $s$CREATE USER $s$ || ...
>
> $func$;
>
> Lo importante de ver es que puedes usar demarcadores de dolar variables
> para cada string donde usarias comillas. Como son distintos, no
> necesitas "escaparlos" duplicando las comillas ni esas cosas
> desagradables que los caballeros elegantes evitan.
>
> Nota eso si que el demarcado de dolar esta disponible solo a partir de
> Postgres 8.0, la version de los caballeros elegantes a la moda.
>
> --
> Alvaro Herrera (<alvherre[a]surnet.cl>)
> "When the proper man does nothing (wu-wei),
> his thought is felt ten thousand miles." (Lao Tse)
>

--
Saludos

Att,
Julio Rivero
Movil: 98817321

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Aldo Alexander Leyva Alvarado 2005-05-25 17:03:14 Consulta sobre UPDATE
Previous Message Manuel Sugawara 2005-05-25 16:40:51 Re: Ayuda sobre script & function