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
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 |