2016-12-27 98 views
0

我们在Oracle数据库中,它看起来像生成从查看平面文件Oracle数据库中

HEADER,P,Lab,16-Dec-16,MEMBER,1,134,134,1,5,BENEFIT,1,MEA,1,TRAILER,   ,20161216,14:08:51 
HEADER,P,Lab,16-Dec-16,MEMBER,1,134,134,1,5,BENEFIT,1,DEN,2,TRAILER,   ,20161216,14:08:51 
HEADER,P,Lab,16-Dec-16,MEMBER,2,572,572,2,5,BENEFIT,2,DEN,2,TRAILER,   ,20161216,14:08:51 
HEADER,P,Lab,16-Dec-16,MEMBER,2,572,572,2,5,BENEFIT,2,MEA,1,TRAILER,   ,20161216,14:08:51 

每个记录头,其不断重复,并具有相同信息的视图。然后,每个成员都有 'N' 节数优点例如

成员(员工ID -1)

MEMBER,1,134,134,1,5 

有益处(对员工ID-1)

BENEFIT,1,MEA,1 
BENEFIT,1,MEA,1 

我试图生成如

HEADER,P,Lab,16-Dec-16 //--- Header 
MEMBER,1,134,134,1,5 //--- Member (Employee ID -1) 
BENEFIT,1,MEA,1  //--- Benefits (Employee ID -1) 
BENEFIT,1,DEN,2  // --- Benefits (Employee ID -1) 
MEMBER,2,572,572,2,5 //--- Member (Employee ID -2) 
BENEFIT,2,DEN,2  //--- Benefits (Employee ID -2) 
BENEFIT,2,MEA,1 // --- Benefits (Employee ID -2) 
TRAILER,Total no.of lines,20161216,14:08:51 // Trailer 

我不知道如何创建输出文件的架构。我是否必须为Header Member Benefits和Trailer创建单独的模式。或者为Header Member Benefits和Trailer创建一个包含多个记录的模式。 Iam不知道如何继续。任何与此有关的帮助将不胜感激

+0

您是否可以改变视图来生成更接近您想要的输出或直接输出XML的输出?如果没有,您需要创建您的Oracle模式,您的平面文件模式以及某种映射来转换它们。在XSLT中,这几乎肯定需要定制XSLT来完成Muenchian分组;或者,你可以在.NET中使用'XDocument'或序列化... –

+0

@DanField如何直接从视图输出XML。有没有办法。如果有输出XML的方法,我可以直接在BizTalk中使用 – trx

+0

请参阅https://docs.oracle.com/cd/E11882_01/appdev.112/e23094/xdb13gen.htm#ADXDB1600示例 - 但请注意,您可以需要适当的权限才能在Oracle数据库本身上创建SQL视图或过程。 –

回答

0

您可以拥有带有employeeid和memberid的Member表,然后带有Benefits id和memberid的Benefits表,并且具有主键外键关系以将所有这些关联在一起。

希望是有效的。

+0

我在询问有关BizTalk中的模式。 – trx