Сравнение VarChar2 и Char: настройки Oracle позволяют это?

У меня просто быстрый вопрос, чтобы узнать, как получается, что я получаю 2 разных результата для одного и того же. У нас есть две базы данных, которые построены совершенно одинаково с точки зрения структуры. В обоих есть представление, которое сравнивает varchar2 (10) и char (10), где поля заполнены только длиной 7 (+3 пробела для курса char).

Конечно, это что-то не так в нашей структуре, но это нечто иное, чем мой вопрос.

Как возможно, что одна база данных может выполнять сравнение (varchar2=char), а другая нет? Есть ли какая-то настройка Oracle, которая может это разрешить.

Спасибо за помощь, Grts, Maarten


person Maarten Kesselaers    schedule 05.06.2013    source источник
comment
Что вы имеете в виду под не в состоянии? Вы не получаете желаемого результата? Сообщение об ошибке? Обезьяны вылетают из сервера БД?   -  person Joachim Sauer    schedule 05.06.2013
comment
может быть, использовать функцию обрезки? Непонятно, в чем ваша проблема.   -  person tbone    schedule 05.06.2013
comment
Итак, вы уверены, что данные и типы данных идентичны в обеих базах данных?   -  person René Nyffenegger    schedule 05.06.2013
comment
Обе базы идентичны. Таким образом, данные для varchar2 имеют длину 7 позиций, а char - 10. При невозможности я упоминаю, что запрос на выборку из таблицы, где varchar2-column = char-column, дает результат в 1 базе данных, а в другой нет. Добавление rtrim в char-column решает проблему, которая у нас есть с этим сравнением, но я хотел бы знать, как получается, что он работает в одной базе данных, а в другой нет.   -  person Maarten Kesselaers    schedule 05.06.2013
comment
Как одна база данных заполняется из другой? Используется ли процедура Oracle Streams захвата/применения?   -  person ThinkJet    schedule 05.06.2013
comment
Вы на 100% уверены, что данные для столбца char имеют длину 10 позиций? Вы распечатали столбец char с разделителями, чтобы проверить это?   -  person Frank Schmitt    schedule 05.06.2013
comment
Экспорт столбца char в csv дает мне «1342570»;. Я не знаю, как именно выполняется процедура экспорта/импорта, но определения столбцов и данные абсолютно идентичны.   -  person Maarten Kesselaers    schedule 07.06.2013


Ответы (1)


Вероятно, это ошибка 11726301 "Неверный результат с query_rewrite_enabled=false и соединениями CHAR с другими CHAR и Столбцы VARCHAR2"

Исправлено в 11.2.0.3

Обходной путь — установить query_rewrite_enabled=true.

person ThinkJet    schedule 05.06.2013
comment
На самом деле, в обеих базах данных для query_rewrite_enable установлено значение true. - person Maarten Kesselaers; 05.06.2013
comment
Ok. Так что мое предложение неверно. Просто оставьте это здесь, потому что это указывает на неправильное направление расследования. - person ThinkJet; 05.06.2013