Re: casi OT ... reemplazar con parametros?

From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "Victor Lopez" <v(dot)lopez(dot)s(at)ono(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: casi OT ... reemplazar con parametros?
Date: 2006-10-23 03:45:51
Message-ID: c2d9e70e0610222045r61bd771ke805db7b4000db4b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 10/20/06, Victor Lopez <v(dot)lopez(dot)s(at)ono(dot)com> wrote:
> Esta claro que no es de SQL.
>
> Esta claro que no es de postgreSQL.
>

pero es de psql que la terminal interactiva de postgres... aceptable ;)

> Pero si que es para formar un fichero con un script, para no tener que hacer,
> a mano, lo mismo una y otra vez.
>
> Como me enrollo!!!
>
> Tengo un fichero (digamos mifichero.sql), con sentencias SQL, que se lo quiero
> dar 'a comer' al psql (psql -f mifichero.sql).
>
> Dentro de ese fichero tengo que poner un dato que no se cuando escribo el
> script (concretamente una /di/rec/cion/).
>
> CREATE TABLESPACE ... LOCATION '/di/rec/cion/'; -- (¿con o sin la '/' final?)
>
> Se me ocurre poner una etiqueta rarísima, y cambiarla con 'sed' (en bash),
> pero seguro que hay mejores opciones.
>
> Por lo pronto creo recordar que en Oracle (y vuelta a comparar!!!), si
> ponías ':' delante de una etiqueta, se convertia en un parametro a
> reemplazar.
>

mira tu, el mismo problema tuve yo y me dio pereza buscar y ahora que
preguntas encontre...

postgres=# \c prueba
You are now connected to database "prueba".
prueba=# \set tabla prueba
prueba=# create table :tabla (col1 int);
CREATE TABLE
prueba=# \d
List of relations
Schema | Name | Type | Owner
--------+--------+-------+----------
public | prueba | table | postgres
(1 row)

y desde la linea de comando (es decir para cuando llames a tu script)...

postgres(at)casanova:/usr/local/pgsql$ ./pgsql/bin/psql --set mnemonic=prueba
Welcome to psql 8.2beta1, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

postgres=# \c :mnemonic
You are now connected to database "prueba".
prueba=# drop table :mnemonic;
DROP TABLE

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Martínez 2006-10-23 09:21:06 Re: pregunta para los que utilizan psql para trabajar con postgres
Previous Message Pedro Mateo 2006-10-22 23:53:58 Re: ayuda sobre funcion nullif