Можно ли использовать переменную DB2 без указания ее схемы? - PullRequest
0 голосов
/ 29 октября 2018

Используя мое соединение JDBC с DB2, я указал схему по умолчанию, используя URL jdbc:db2://192.168.56.208:50000/db001:currentSchema=TZTC;. Затем я создал переменную DB2 в схеме по умолчанию:

create variable my_var1 smallint default 1;

Однако, когда я пытаюсь установить или отобразить его, я вынужден указать имя его схемы. Не удается, когда я пытаюсь:

set my_var1 = 123;
Error: DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703, SQLERRMC=MY_VAR1, DRIVER=3.53.95

select my_var1 from sysibm.sysdummy1;
Error: DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703, SQLERRMC=MY_VAR1, DRIVER=3.53.95

Но тогда, если я укажу имя схемы, все будет работать нормально:

set tztc.my_var1 = 123; -- works
select tztc.my_var1 from sysibm.sysdummy1; -- returns 123

Можно ли использовать переменную DB2 без указания ее схемы? Я бы предпочел оставить его без схемы, как и весь остальной код SQL в проекте.

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Квалификационная переменная работает на iseries db2.

create variable mylib.my_var1 smallint default 1;
set mylib.my_var1 = 12;

это также работает на iseries db2.

create variable danny117 smallint default 1;
set danny117 = 12;
drop variable danny117;
0 голосов
/ 29 октября 2018

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

Документы имеют правила о том, как разрешается имя переменной.

Обратите внимание, что существуют различия между переменными, определенными в модуле и в обычном контексте SQL (оператора).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...