暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何拆分包含个人数据的大文件

askTom 2016-08-29
209

问题描述

嗨,汤姆,

晚上好。

你能指导我如何做低于要求的事情吗?

输入将采取巨大的数据文件它的个人任何数据它不喜欢固定大小或分隔。就像任何格式。
这些数据必须分开
1、基于行
2.根据文件中的数据,如果有借记卡相关的信息,我们就必须相应地分割
a>鲁佩
b>铂金
对于一种类型的卡片,一个文件必须分割。

我希望能理解我的疑问。

你能给我一个总体的想法吗。

谢谢你。

致意
桑卡尔

专家解答

如果没有固定的大小,或者没有分隔符,那么您就需要用某种方式解析它。

我过去在这种情况下所做的,是

a)作为外部表访问文件
b)使用SQL访问分隔符和特殊字符等
c)使用PLSQL执行更复杂的解析模式

所以(在伪代码中)你会得到类似的东西:

for i in ( 
  select 
    the_line,
    instr(the_line,',',1,1) comma1,
    instr(the_line,',',1,2) comma2,
    instr(the_line,',',1,3) comma3,
    instr(the_line,'$') first_money_sign,
    case when the_line like '%CREDET%' then 'Y' end contains_credit_card
    ...
    ...
 from my_external_table
) 
loop
   ...
   ... more complex logic requiring if-then, or more parsing etc
   ... but it can use some of the metadata (comma1 etc) extracted
   .... the cursor SQL
end loop;


如果数据必须在一个表中结束,这个plsql可以是一个管道函数,所以这个过程变成

insert into target_table
select * from table(my_plsql_function);


希望这个能帮上忙。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论