使用前缀对查询中的所有列进行别名

时间:2010-03-23 15:13:13

标签: oracle select jdbc alias

是否可以在选择中使用前缀对所有列进行别名? 我在Oracle数据库中有一组表需要连接在一起,并且大多数表具有相同的列名。我想要像

这样的东西
select MAGIC_ADD_PREFIX("PREFIX", *) from TABLE

并有一个像

的结果
+---------+----------+----------+
|PREFIX_ID|PREFIX_FOO|PREFIX_BAR|
+---------+----------+----------+
|...      |          |          |

ATM我唯一能想到的就像chumsky一样

select ID PREFIX_ID, FOO PREFIX_FOO, BAR PREFIX_BAR from TABLE

但它很丑陋,因为地狱和容易出错

====进一步解释====

的问题
select TABLE.*,...

是我使用java + jdbc驱动程序来检索列,而java.sql.ResultSet方法(resultset.getInt("COLUMNNAME").getString("COLUMNNAME") ...)不支持语法“TABLENAME .COLUMNAME”。

如果我这样做(简化,没有错误...)

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

我收到一个SQLException,其中包含无效的列名称作为消息

1 个答案:

答案 0 :(得分:2)

你可以做到

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

或者您可以创建基表的视图,如

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

您可以通过从user_tab_columns中选择列名来生成用于创建a_vw的SQL