getColumnName() возвращает псевдоним Oracle

Я использую ojdbc7.jar для подключения к оракулу из Java. Для запроса с псевдонимами, когда я делаю getColumnName() а также getColumnLabel() из ResultSetMetaData, оба возвращают псевдоним. Я хочу иметь оригинальное имя столбца.

0 ответов

Это невозможно Если вы напишите запрос, в котором псевдоним столбца (или функции) будет добавлен к какому-либо другому имени, когда набор результатов будет передан на следующий уровень (другой запрос, как в представлении, или вызов JDBC/ODBC), метаданные, которые имеет система о том запросе только псевдоним.

Единственный способ найти оригинальное имя - отследить используемый SQL обратно к его источнику (например, если он вызывает представление, ищет определение представления и т. Д.).

Рассмотрим представление, которое связывает столбец с чем-то другим (по сути, то, что вы делаете, поскольку представление - это просто хранимый SQL, который выполняется по требованию). Определение представления этого столбца будет иметь только псевдоним (фактически он хранится в dba_tab_columns), а не оригинальное имя. У вас нет возможности узнать оригинальное имя, если не считать определения представления.

Другие вопросы по тегам