извлечение длинных необработанных данных в переменную clob - PullRequest
1 голос
/ 10 ноября 2011

Я хочу получить длинные необработанные данные из столбца с типом данных long raw в переменную clob.

Если я непосредственно напишу оператор вставки, я не смогу вставить длинный столбец raw.

Мне нужно использовать функцию utl_raw.cast_to_raw (..) для вставки текста в длинный необработанный столбец. Может кто-нибудь объяснить эту проблему?

Позвольте мне объяснить вам рабочий процесс для этого

  1. Пользователь вводит форматированный текст в расширенный редактор в Delphi и сохраняет.

  2. Данные сохраняются в длинном необработанном столбце.

  3. Пользователь нажимает кнопку в Delphi, и данные должны извлекаться из длинного необработанного столбца и отображаться в элементе управления расширенного редактора.

Итак, все, что нам нужно, это SQL, который передает идентификатор, и он должен возвращать данные из long raw.

Это работает, но данные не читаются, поскольку мы получаем двоичные данные мусора.

Структура таблицы для этой таблицы будет похожа создать данные таблицы (целочисленный идентификатор, необработанные данные);

Я использую Oracle 9i в качестве базы данных.

1 Ответ

1 голос
/ 11 ноября 2011

Типы данных LONG и LONG RAW устарели в пользу CLOB и BLOB начиная с Oracle 8.0 (то есть почти пятнадцать лет назад).Основная причина этого переключения заключается в том, что со столбцами LONG действительно сложно работать, а для LONG RAW это удваивается.

Как вы уже обнаружили, существует предел того, что мы можем сделать в PL / SQL,Это ограничение составляет 32 КБ.Столбцы LONG RAW большего размера можно обрабатывать только в C.


Том Кайт использовал для размещения утилиты для выгрузки столбцов Long Raw в плоский файл, который затем можно было загрузить в современные столбцы больших объектов через SQL Loader.Похоже, что эта доступность недоступна (ее нет в списке файлов / ~ tkyte в его блоге).

Однако Фанксин Лу написал версию другой утилиты Tom Kyte, которую он назвал ociuldr и котораявидимо обрабатывает Long Raw.Вы можете скачать источник с его веб-сайта. Узнайте больше .

NB Я не пробовал ociuldr для себя (я не сталкивался с Long Raw с прошлого тысячелетия), и я ни в коем случае не подтверждаю это.Но, похоже, это единственное решение, которое интернет предлагает сейчас.Поэтому я предлагаю вам попробовать, если вы не обладаете хорошими навыками OCI и не можете написать свою собственную реализацию.

...