Oracle 使用前缀为查询中的所有列别名
可以在select?中使用前缀为所有列别名? 我在Oracle数据库中有一组表需要连接在一起,其中大多数表都有相同的列名。我想要点像这样的Oracle 使用前缀为查询中的所有列别名,oracle,select,jdbc,alias,Oracle,Select,Jdbc,Alias,可以在select?中使用前缀为所有列别名? 我在Oracle数据库中有一组表需要连接在一起,其中大多数表都有相同的列名。我想要点像这样的 select MAGIC_ADD_PREFIX("PREFIX", *) from TABLE 结果是 +---------+----------+----------+ |PREFIX_ID|PREFIX_FOO|PREFIX_BAR| +---------+----------+----------+ |... | |
select MAGIC_ADD_PREFIX("PREFIX", *) from TABLE
结果是
+---------+----------+----------+
|PREFIX_ID|PREFIX_FOO|PREFIX_BAR|
+---------+----------+----------+
|... | | |
我唯一能想到的就是像这样的傻瓜
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.COLUMNNAME”
如果我这样做(简化,无错误检查…)
我得到了一个SQLException
,其中包含无效的列名作为消息您可以这样做
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...
通过从用户选项卡列中选择列名,您可以非常轻松地生成用于创建列的SQL代码>不创建前缀。此外,创建视图与在“选择”对话框中添加别名一样容易出错。
create view a_vw as select a.col1 a_col1, a.col2 a_col2...