Используйте "||" для объединения двух столбцов типа «VARCHAR2 (50)» иногда возвращается значение null в Oracle 12 c Enterprise версии - PullRequest
0 голосов
/ 20 февраля 2020

Детализация - - в одной таблице 2 столбца, которые нам нужно использовать в качестве имени объекта в отчете. Оба типа 'VARCHAR2 (50)', и мы никогда раньше не сталкивались с подобными проблемами, пока не обновили до Oracle 12 c.

Что я сделал - я пытался поиск в Oracle справочном центре / google / bing / baidu ... не нашел никаких возможных возможных вопросов и ответов.

Мой вопрос => Кто-нибудь сталкивался с этой проблемой? перед? Если да, что вы предлагаете исправить это (я знаю, что мы можем использовать другой подход, чтобы избежать этого, поэтому мой ожидаемый ответ - «исправить», а не «избегать» - просто хочу разобраться в этой сложной проблеме)?

  • PRODUCT : Oracle База данных 12 c Enterprise Edition
  • ВЕРСИЯ : 12.2.0.1.0
  • СОСТОЯНИЕ : 64-битное производство

Пример:

select A||'.'||B as C
...
...
from table_eg

------> мы получаем C = "."

Другая информация :

  • столбцы не равны нулю
  • Невозможно воспроизвести 100% (по сравнению с другими данными, другой клиент для выполнения, другой сервер, запустите его непосредственно на сервере, другой сценарий SQL)
  • Невозможно воспроизвести его вообще, если просто выполнить простейший выбор + из сценария

1 Ответ

0 голосов
/ 20 февраля 2020

У вас может быть что-то подобное?

create table junk( id number(2,0) not null
, a varchar2(50) not null
, b varchar2(50) not null );

insert into junk values( 1, ' ', ' ' );
insert into junk values( 2, 'x', 'y' );

commit;

Тогда

select id, a||'.'||b from junk;

        ID A||'.'||B                                                                                            
---------- ---------
         1  .                                                                                                   
         2 x.y                                                                                                  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...