Пустые строки в Oracle и MS
От: kto-to  
Дата: 17.08.04 13:30
Оценка:
Есть уйма софта, которая через 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 настроить так,
чтобы он на своем уровне пустые строки заменял пробелами
при передаче параметров от клиента к серверу?

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