Хорошее время суток для всех. Я столкнулся с огромной проблемой во время моей работы на предыдущей неделе. Здесь ia сделка:Импорт blob через SAS из ORACLE DB
Мне нужно загрузить exel-файл (blob) из базы данных ORACLE через SAS. Я использую:
Первый шаг я должен получить данные из оракула. Я использовал строительство (блоб файл почти 100kb):
proc sql; connect to oracle; create table SASTBL as select * from connection to oracle ( select dbms_lob.substr(myblobfield,1,32767) as blob_1, dbms_lob.substr(myblobfield,32768,32767) as blob_2, dbms_lob.substr(myblobfield,65535,32767) as blob_3, dbms_lob.substr(myblobfield,97302,32767) as blob_4 from my_tbl; ); quit;
И результат:
blob_1 = 70020202020202...02
blob_2 = 02020202020...02
blob_3 = 02020202...02
Я не понимаю, почему поле состоит из (всего файла «02»)
И длина любой переменной в sas составляет 1024 (вместо 37767) $ HEX2024. Если я возьму:
dbms_lob.substr (my_blob_field, 2000,900) из того же объекта, результат будет месиво более похоже на правду: блоба = "A234ABC4536AE7 ...."
Вопрос 1. Как я могу получить двоичные данные из поля blob правильно через SAS? Какая у меня ошибка?
спасибо.
EDIT 1:
я получаю информацию, но не более строка 2000 кб.
Может у ou connect by [libname] (https://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a001355231.htm): 'libname oracledata odbc datasrc = orasrvr1 user =" имя пользователя "password =" password "; '- при необходимости? – Parfait
Из любопытства, какая информация хранится в блоке? Изображение? Вложение файлов? Что-то другое? –
@RobertPenridge тип файла - офисный документ (exel, doc) – bobby1232