Я нахожусь в процессе разработки рабочего процесса для экспорта данных из базы данных Oracle в другую систему.К сожалению, я столкнулся с непростой проблемой.Система назначения использует импорт на основе XML, и любой ввод данных должен быть в очень конкретном формате.Некоторые поля не могут быть нули, и должны содержать данные, даже если это просто слово "none".Инструмент отчетности, который я использую (eVisions Argos), может справиться с этим, используя операторы If для условной печати слова none, если поле пустое.
Вот проблема.Некоторые данные в нескольких столбцах исходной базы данных противоречивы.Большинство рассматриваемых полей не являются нулевыми, но содержат два пробела (не знаю почему - я не администратор баз данных).Исключением является несколько полей, которые на самом деле являются нулевыми, а некоторые содержат данные.
Есть ли способ структурировать мой запрос таким образом, чтобы выбрать данные в поле, если оно есть, но в противном случае ввести нулевое значение?Я пробовал это (полный запрос исключен, поскольку он немного длинен):
SELECT
...
CASE perm_address2
WHEN ' ' THEN null
WHEN null THEN null
ELSE (select perm_address2 from local_lib_extract_view where perm_address2 is not null)
END perm_address2
...
FROM local_lib_extract_view
, но получил ошибку "ORA-01427:
однострочный подзапрос возвращает большечем один ряд ".Есть ли у SQL возможности справиться с этим сценарием?