У меня есть таблица Oracle 11.2.0.4.0 с именем LOOKUPTABLE с 3 полями
НОМЕР LOOKUPTABLEID (12) LOOKUPTABLENM NVARCHAR2 (255) LOOKUPTABLECONTENT NCLOB
Данные в поле NCLOB тщательно проверяются при вставке, поэтому я уверен, что данные всегда являются разделенной запятыми строкой с CRLF на конце, поэтому читается точно так же, как простой файл CSV. Пример ([CRLF] - представление фактического CRLF, а не текста)
WITH lookuptable AS (
SELECT
1 AS "LOOKUPTABLEID",
'CODES.TBL' AS "LOOKUPTABLENM",
TO_NCLOB('851,ALL HOURS WORKED GLASS,G,0,,,,,,'||chr(10)||chr(13)||
'935,ALL OT AND HW HRS,G,0,,,,,,'||chr(10)||chr(13)||
'934,ALL PAID TIME,G,0,,,,,,'||chr(10)||chr(13)) AS "LOOKUPTABLECONTENT"
FROM dual
)
SELECT lookuptablecontent FROM lookuptable WHERE lookuptablenm='CODES.TBL';
"851, ВСЕ ЧАСЫ РАБОТАЛИ СТЕКЛО, G, 0 ,,,,,, [CRLF] 935, ВСЕ OT И HW HRS, G, 0 ,,,,,, [CRLF] 934, ВСЕ ПЛАНИРОВАННОЕ ВРЕМЯ, G, 0 ,,,,,, [CRLF] "
По сути, я хочу получить запрос, который может выводить 1 строка для каждой строки в CLOB. Я использую приложение, которое будет читать этот SQL и записывать его в текстовый файл для меня, но оно не может обрабатывать типы данных CLOB, и у меня нет возможности записывать напрямую в файл из SQL. У меня должен быть запрос, который может дать этот результат и позволить моему приложению написать файл. У меня есть возможность создавать / записывать свои собственные таблицы, так что процедура, которая будет считывать CLOB в новую таблицу, а затем я буду выбирать из этой таблицы в моем приложении, будет приемлемой, если это лучше, прямо сейчас у меня над головой. Желаемый вывод ниже, заранее спасибо за любую помощь:)
1. 851,ALL HOURS WORKED GLASS,G,0,,,,,,
2. 935,ALL OT AND HW HRS,G,0,,,,,,
3. 934,ALL PAID TIME,G,0,,,,,,