Vit*_*lio 12 oracle select alias jdbc
是否可以在选择中使用前缀对所有列进行别名?我在Oracle数据库中有一组表需要连接在一起,并且大多数表具有相同的列名.我想有类似的东西
select MAGIC_ADD_PREFIX("PREFIX", *) from TABLE
Run Code Online (Sandbox Code Playgroud)
并有一个结果
+---------+----------+----------+
|PREFIX_ID|PREFIX_FOO|PREFIX_BAR|
+---------+----------+----------+
|... | | |
Run Code Online (Sandbox Code Playgroud)
ATM我唯一能想到的就像chumsky一样
select ID PREFIX_ID, FOO PREFIX_FOO, BAR PREFIX_BAR from TABLE
Run Code Online (Sandbox Code Playgroud)
但它很丑陋,因为地狱和容易出错
====进一步解释====
这个问题
select TABLE.*,...
Run Code Online (Sandbox Code Playgroud)
是我使用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"));
Run Code Online (Sandbox Code Playgroud)
我得到一个SQLException无效的列名作为消息
你可以做
select a.*, b.* from table_a a, table_b b where.....
Run Code Online (Sandbox Code Playgroud)
或者您可以在基表上创建视图,例如
create view a_vw as select a.col1 a_col1, a.col2 a_col2...
Run Code Online (Sandbox Code Playgroud)
您可以通过从 user_tab_columns 选择列名来相当轻松地生成用于创建 a_vw 的 SQL
| 归档时间: |
|
| 查看次数: |
5421 次 |
| 最近记录: |