IBM IDAA не разрешит мне запросить указанный столбец c - PullRequest
0 голосов
/ 28 февраля 2020

У меня установлен IBM IDAA, в котором я создал таблицу только для ускорителя с оператором CREATE:

CREATE TABLE aot_table ( "col_1" decimal(11,0) NOT NULL , "col_2" smallint, "col_3" smallint, ) IN ACCELERATOR my_accel;

Затем я загрузил ее вручную с помощью INSERTS с тестовыми данными , Когда я запрашиваю его: SELECT col_1 from MY_USER.aot_table;

Я получаю сообщение об ошибке:

`select col_1 из MY_USER.aot_table

COL_1 НЕ ДЕЙСТВИТЕЛЬНО В КОНТЕКСТЕ, ГДЕ ИСПОЛЬЗУЕТСЯ. SQLCODE = -206, SQLSTATE = 42703, DRIVER = 4.24.92`

Кто-нибудь знает, почему это происходит?

1 Ответ

1 голос
/ 28 февраля 2020

Если вы создали таблицу с двойными кавычками вокруг имен столбцов и строчных имен столбцов, как показано в вашем вопросе, то ваши запросы также должны заключать двойные кавычки в имена столбцов и соответствовать регистру имен столбцов.

В противном случае Db2 свернет имена столбцов без кавычек в верхний регистр, которые не будут совпадать с именами столбцов в нижнем регистре, что приведет к исключениям.

Так что попробуйте select "col_1" from MY_USER.aot_table, предполагая, что tabschema также MY_USER. Обратите внимание на имя столбца в кавычках.

Если вы не хотите заключать в кавычки имена столбцов в запросах, не используйте двойные кавычки вокруг имен столбцов в операторе create table. Неизмененные имена столбцов в запросах будут затем свернуты в верхний регистр, что обычно более удобно для SQL.

...