32767oracle写文件,在SAS中读取的文本行长于32767个字符

我有一个xml文件,其中仅包含一个长度超过32767的文本行.目前,SAS在第32767个字符处将其截断,并停止进一步读取该行.

任务是将输入行拆分为单独的变量或单独的观察值.

我用来读取文件的代码是:

data out (drop=v_length);

length xml_text $32767;

retain xml_text v_length gr_split;

infile tempxml encoding='utf-8' end=last;

input;

if _n_ = 1 then do;

v_length = length(left(_infile_));

gr_split = 1;

end; else

v_length=v_length+length(left(_infile_));

if v_length gt 32767 then do;

gr_split + 1;

v_length=length(left(_infile_));

end;

if _n_ = 1 or v_length=length(left(_infile_)) then do;

xml_text = compress(left(_infile_),,'c');

end; else

xml_text = trim(xml_text)||compress(left(_infile_),,'c');

if last then do;

call symput('NumOfTextGroups',gr_split);

call symput('LastRow',_n_);

end;

run;

当整个xml长度不超过32767时,代码将生成一个单元格.否则,它输出n行.在第一种情况下,我可以直接在Oracle中解析它(一旦将数据传递到那里).第二,我首先将数据带到Oracle,然后在那里组装单元进行解析.

但是,它仅在xml文件的每一行少于32767个字符时才起作用.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值