2011-01-21 14 views
7

¿es posible hacer referencia a un nombre de columna/tabla utilizando una cadena? ¿Algo como SELECT * FROM 'my_table'::table_name_t?Consulte los nombres de columna/tabla usando cadenas?

La razón por la que estoy preguntando: Tengo una tabla geometry_columns con algunas tablas de geometría. Y me gustaría saber qué objetos están dentro de un cierto radio.

Gracias, Philip

Respuesta

5

Necesitará una función (almacenada) para lograr esto. La función toma el nombre de la tabla como argumento, crea el SQL dinámicamente y luego devuelve el resultado de SELECT basado en esa consulta.

He aquí algunos ejemplos (no es exactamente lo que necesita, pero deben conseguir que va en la dirección correcta):

http://forums.devshed.com/postgresql-help-21/plpgsql-variable-representing-table-name-137201.html
Dynamic column in SELECT statement postgres

+0

Ok gracias. Es bueno saberlo, aunque supongo que esto es excesivo para mi problema. – Philip

0

No creo que pueda hacer eso directamente. Creo que tendrías que compilar la instrucción select de otra declaración o fragmento de código, y luego ejecutar la declaración resultante.

Cuestiones relacionadas