Метаданные HANA JDBC

Драйвер HANA JDBC возвращает другой тип метаданных для столбца при выполнении объединения, даже если оба столбца в объединении имеют один и тот же тип.

Рассмотрим случай ниже:

create table test (
    A NCHAR(1),
    B NCHAR(1)
);

insert into test values('A','B');

select a from test union select b from test;

Если я исследую метаданные набора результатов, тип столбца результата будет NVARCHAR, а не NCHAR, как ожидалось, событие, хотя оба столбца имеют тип NCHAR.

Однако если я выполню запрос:

select a from test union select a from test;

метаданные JDBC возвращают ожидаемый тип NCHAR.

Другие базы данных, особенно Oracle, не ведут себя подобным образом. Тип JDBC будет сохранен в UNION, если оба столбца имеют один и тот же тип.

Ниже приведены сведения о драйвере JDBC, который я использую.

Implementation-Title: SAP HANA JDBC Driver
Implementation-Vendor: SAP SE
Implementation-Version: 2.0.5-e130cbef291d3b62d5b138d3d5ce24e251013ac2

Есть идеи по этому поводу? Есть ли способ заставить драйвер сохранить тип?

заранее спасибо


person user7981386    schedule 20.06.2017    source источник
comment
Извините, свою ошибку я исправил. Если я выберу тот же столбец в UNION, тип JDBC будет сохранен.   -  person user7981386    schedule 21.06.2017


Ответы (1)


К сожалению, мы не знаем, какую версию драйвера вы используете. Однако я подозреваю, что это связано с внутренним поведением HANA, поскольку (N)CHAR являются устаревшими типами данных. В этом случае HANA правильно предоставляет поддерживаемые типы (N)VARCHAR.

person Lars Br.    schedule 20.06.2017
comment
Я добавил данные о драйвере (см. Выше). - person user7981386; 21.06.2017
comment
Если я выберу тот же столбец над UNION, тип JDBC будет сохранен. На практике HANA поддерживает (N) CHAR. Насколько мне известно, изначально планировалось отказаться от этих типов, однако от них отказались. Если искали официальное заявление по этой теме, но не нашли. Можете ли вы прислать мне ссылку или документ, в котором официально заявлено, что эти типы JDBC устарели. - person user7981386; 21.06.2017
comment
Текущая документация - person Lars Br.; 22.06.2017