2010-03-23 29 views
12

¿es posible alias todas las columnas con un prefijo, en una selección? Tengo un grupo de tablas en un db Oracle que necesito unir, y la mayoría de ellas tienen los mismos nombres de columna. Me gustaría tener algo comoalias todas las columnas en una consulta con un prefijo

select MAGIC_ADD_PREFIX("PREFIX", *) from TABLE 

y tienen un resultado como

+---------+----------+----------+ 
|PREFIX_ID|PREFIX_FOO|PREFIX_BAR| 
+---------+----------+----------+ 
|...  |   |   | 

ATM lo único que puedo pensar es algo chumsky gusta

select ID PREFIX_ID, FOO PREFIX_FOO, BAR PREFIX_BAR from TABLE 

pero es feo como el infierno y propenso a errores

==== explicación adicional ====

El problema con

select TABLE.*,... 

es que estoy usando conductores movil + JDBC para recuperar las columnas, y los métodos (java.sql.ResultSetresultset.getInt("COLUMNNAME"), .getString("COLUMNNAME") ...) no soporta la sintaxis "TABLENAME.COLUMNAME ".

si lo hago (simplificado, no hay cheks error ...)

ResultSet rs = mkResultSet("select * from table_a, table_b"); 
rs.next(); 
System.out.println(rs.getInt("table_a.id")); 

me siento un SQLException con el nombre de columna no válido como mensaje

+0

dup: http://stackoverflow.com/questions/329931/sql-select-join-is-it-possible-to- prefix-all-columns-as-prefix – dforce

Respuesta

1

Usted puede hacer

select a.*, b.* from table_a a, table_b b where..... 

O podría crear vistas sobre las tablas base como

create view a_vw as select a.col1 a_col1, a.col2 a_col2... 

Puede generar el SQL para crear a_vw con bastante facilidad seleccionando el nombre de columna de column_tab_usuario

Cuestiones relacionadas