возможно исказить весь столбец с префиксом в выборе? У меня есть группа таблиц в дб 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"));
Я получаю a 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 для создания a_vw довольно легко, выбрав имя столбца из user_tab_columns