При написании программы, которая связывает Java и DB2 через драйвер JDBC, я попытался написать программу, которая бы извлекала все данные (все записи, содержащиеся во всех таблицах) в заданной базе данных.Когда я запустил программу, я обнаружил, что она в основном работает.Однако было несколько таблиц, из которых он не собирал данные.Я получил доступ к этим таблицам из командного редактора IBM и обнаружил, что они содержат данные.Я запустил
SELECT * FROM SYSCAT.COLUMNS WHERE TABNAME = 'Table'
для базы данных и обнаружил, что в этих таблицах нет записей столбцов в таблице SYSCAT.COLUMNS.,Полагая, что я неправильно написал имя таблицы, я запустил
SELECT * FROM SYSCAT.COLUMNS
для базы данных и вручную искал таблицу под именем TABNAME.Я не мог найти это.Когда я запустил
SELECT * FROM SYSCAT.TABLES
, я нашел таблицу в списке доступных таблиц.Однако в SYSCAT.TABLES я также обнаружил, что ни в одной из таблиц ТИПА 'A' нет записей в SYSCAT.COLUMNS.Мне было интересно, в чем причина этого для IBM и как я могу узнать, как называются имена полей для этих конкретных типов таблиц.
TL; DR Как получить имена столбцов для DB2 без использования SYSCAT.COLUMNSчерез стандартный запрос SQL к базе данных DB2?