В DB2 по умолчанию имена схем, таблиц и столбцов не чувствительны к регистру. При выдаче выписки:
create table myid.test (
c1 int
c2 int
);
DB2 переводит имена схем, таблиц и столбцов в верхний регистр. Поэтому, если вы загляните в системный каталог, то увидите, что таблица называется MYID.TEST и имеет столбцы C1 и C2.
DB2 также сворачивает все запросы в верхний регистр (по умолчанию). Итак, когда вы запрашиваете эту таблицу, следующие операторы идентичны:
select c1, c2 from myid.test
SELECT C1, c2 from MYID.TEST
SELECT c1, C2 from MyID.Test
Однако DB2 может использовать имена, чувствительные к регистру: если вы укажете имена схем / таблиц / столбцов в определении, тогда DB2 будет использовать точные строки:
create table "MyID"."Test" (
c1 int,
"C2" int
);
В этом случае вы увидите смешанные имена схем / таблиц / столбцов в системном каталоге.
У этого неприятного (и болезненного) побочного эффекта ТРЕБУЕТСЯ, чтобы вы указывали имена схем / таблиц / столбцов во всех ваших запросах, DML и DDL.
Использование смешанных имен регистров НЕ является лучшей практикой.
Наилучшим решением было бы воссоздать ваши таблицы без чувствительных к регистру имен (т.е. не помещать имена схем / таблиц / столбцов в кавычки.
Это избавит вас от необходимости переопределять все с помощью ADODB. Возможно, для ADODB есть обходной путь, но боль все равно будет существовать для всех остальных.