我需要读取这些数据,然后使用(如果可能的话)单勺转换将它们加载到oracle表中。
数据成对地存储在两个文件中。每对都有一个文件(data-type_yyyymmdd.txt),每一行都放在以carriage-return结尾的行中,字段之间没有分隔符。提取这些字段的关键是第二个文件(data-type_yyyymmdd.ref),该文件包含沿行映射这些字段的信息。让我们看看一个例子:
数据-type_yyyymmdd.ref文件布局:
OPERATION_ID A 011
USER A 008
DATE_TRANSACTION A 0008
TIME_TRANSACTION N 0004第一列是字段名,第二列是数据类型(A=alphanumeric,N=numeric),第三列是字段长度。这些柱子沿直线有固定的位置。
重要的是:这两对可能具有不同结构的REF文件,但是具有相同类型的REF文件(由data-type在文件名中标识)的对具有相同的结构。
数据-type_yyyymmdd.txt文件布局:
此文件的一行
50593749120ABCDEFGH201701021444该行的字段具有以下值:
OPERATION_ID=50593749120
USER=ABCDEFGH
DATE_TRANSACTION=20170102
TIME_TRANSACTION=1444因此,五旬节转换必须读取这些文件,检索行/字段并将它们插入到表中。
如何标识表以插入这些数据?
关键是文件名的data-type部分。我们有一组不同的表,它们的名称由这一部分来标识。每个表结构都等价于其相关的参考文件。示例:
此文件对userlogins_20170701.ref和userlogins_20170701.txt具有userlogins oracle表的数据。让我们假设这对具有上面示例的相同结构。所以这个表有这样的结构:
ID - numeric(16)
OPERATION_ID - varchar2(11)
USER - varchar2(8)
DATE_TRANSACTION - varchar2(8)
TIME_TRANSACTION - numeric(4)所有表的ID字段都是由序列数据库填充的主键。其他字段遵循REF文件结构。A类型字段映射到varchars字段,N映射到数字字段。
发布于 2017-07-05 18:50:48
在这里,如果.ref文件不会更改,您可以将源文件中的数据流转换为“复制行到结果”,然后通过设置“为每行运行此作业”应用作业,然后为每一行应用裁剪字符串组件并设置四个变量,然后逐行存储在四列中。
https://stackoverflow.com/questions/44680407
复制相似问题