使用SAS下载Blob_file

我正尝试从ORACLE DB下载Blob文件。 我使用dbms_lob.substr来切割部分的二进制数据(HEX字段的最大长度是2000)。 所以我把它剪下来,然后把数据放到.docx文件中。 当我打开它时,我看到这个消息:

Word发现文件test777.docx中的内容有问题

并要求我修复该文件。 Office套件修复后,文档打开正常。 我可以打开文件。

我认为在屏幕截图中的核心问题:[![enter] image description [1]] [1]

最后一个字段的符号的剪切剩余量是“02”的补充。 所以当我把它写在一个文件中并用二进制视图打开时,我看到了很多空间。 据我所知这是一个核心问题。

[![在这里input图片描述] [2]] [2]

  1. 有谁知道如何避免它? 我想下载的方法的问题。
  2. 如何修复像Office一样的文件呢? (我每个月有近100个文件)。

你没有为blob的长度指定一个variables名,所以我将使用BLOB_LENGTH。 您需要确保不要写出超过全长。 你也不需要FILE语句的MOD选项,因为你正在创build的文件不附加到现有的文件。

 data _null_; length fv $ 120; set blobs; fv="k:\Folder\"||File_nm; file writeout FILEVAR=fv recfm=n; array blob[8] blob_1-blob_8; do i=1 to 8 ; len = max(0,min(2000,blob_length - 2000*(i-1))); put blob[i] $varying2000. len; end; run;