对每个人来说都是一天中的好时光。
上周我在工作中遇到了一个巨大的问题。
这是交易:
我需要通过SAS从ORACLE数据库下载excel文件(blob)。
我在用:
-
第一步我需要从oracle获取数据。我使用的构造(blob文件近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.如何通过SAS正确从blob字段获取二进制数据?我的错误是什么?
谢谢。
EDIT 1:
我得到了信息,但最大字符串是 2000 kb。
在 CONNECT 语句(或 LIBNAME 语句)上使用 DBMAX_TEXT 选项可获取最多 32,767 个字符。默认值可能是 1024。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)