Есть уйма софта, которая через OLEDB.ADO ломится на MSSQL.
Меняем МSSQL на ORACLE.
Многие софтины старые и глупые, а посему вставляют
в таблицу ''(пустые строки ) не пользуясь дефаултами.
Проблема №1:
в MS условие '' ='' — истинно, a ''=null -ложно
в оракле условие '' ='' — ЛОЖНО, a ''=null -ложно
Мне необходимо, чтобы оракл считал пустые строки
"равным" пробелу, а пробел равным пустой строке (как это делает MS)
Возможно ли так настроить оракл?
(Чтобы работало Select * from table where field ='')
Проблема №2:
Эти строки вставляются в поля на которых часто стоит NOT NULL,
что в оракле сразу же вызывает ошибку.
Дежурное решение — разрешить туда писать null.
Писать практически на каждую из 1000 таблиц
before insert — отвратительное решение.
Может есть что-то поизящнее?
Проблема №3:
Можно ли OLEDB.ADO настроить так,
чтобы он на своем уровне пустые строки заменял пробелами
при передаче параметров от клиента к серверу?
Т.е. на клиенте я вызываю хранимую процедуру
со строковым параметром равным пустой строке,
а на сервак на месте этого параметра приходит пробел.