jbdc игнорирует псевдонимы в выражении sql - PullRequest
1 голос
/ 09 декабря 2011

В моем Java-приложении я запускаю SQL-запрос, например:

select rowid as col1, id as col2 from dummy_table

, а затем, когда я использую ResultSetMetaData.getColumnNames, я ожидаю получить псевдонимы столбцов (col1 и col2), но метод возвращает физические имена столбцов.

Итак, мой вопрос, как получить псевдонимы столбцов с помощью ResultSetMetaData

Я использую Java 1.6, Jdbc, Sybase

Большое спасибо

Ответы [ 3 ]

5 голосов
/ 09 декабря 2011

Возможно, ваш драйвер не понимает псевдоним столбца.Попробуйте вызвать ResultSetMetaData.getColumnLabel(), чтобы увидеть, что получится

3 голосов
/ 09 декабря 2011

Я заметил нечто похожее в MySQL - там быстрое решение - превратить ваш основной запрос в подзапрос, например так:

select v.* from (
select rowid as col1, id as col2 from dummy_table
) as v
1 голос
/ 09 декабря 2011

Вы можете использовать временные таблицы,

   select rowid as col1, id as col2 INTO #tmp from dummy_table


    select * from #tmp

Я думаю, что это сработает.

для второго решения также проверьте String getColumnLabel(int column) функцию ResultSetMetaData

...