# CloeverETL for Oracle Identity Analytics

**URL:** <https://forum.cloverdx.com/t/cloeveretl-for-oracle-identity-analytics/728>\
**Category:** CloverDX Platform\
**Created:** [July 14, 2010, 12:00am UTC](https://forum.cloverdx.com/t/cloeveretl-for-oracle-identity-analytics/728 "2010-07-14T00:00:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![activeuser](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@activeuser](https://forum.cloverdx.com/u/activeuser)\
**Post date:** [July 14, 2010, 12:00am UTC](https://forum.cloverdx.com/t/cloeveretl-for-oracle-identity-analytics/728/1 "2010-07-14T00:00:00Z")

</div>

Hi,

I am trying to use CloverETL to transfrom my source file into a OIA (oracle identity analytics, erstwhile Sun Role Manager V 5.0.3) desirable import format. However, I am unable to join multiple rows from source file to one row.

Here is the process I am following :

1. Get the source file  
2. Partition it into 2 different files  
3. Create a single row for every join\_key in above files with all selected data being joined in double quotes with comma separation.

Exampel :

Source File -

A1234 , XYZ, name1, subject1, 1  
A1234 , ABC, name1, subject1, 1  
A1234 , CDE, name1, subject1, 0  
A1234 , FGH, name1, subject1, 0

Desired Ourput - 2 files

File 1 : A1234, “XYZ,ABC”, name1, subject1  
File 2 : A1234, “CDE,FGH”, name1, subject1

Thanks,

---

<div class="post-metadata">

**Author:** ![avackova](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@avackova](https://forum.cloverdx.com/u/avackova)\
**Post date:** [July 16, 2010, 7:56am UTC](https://forum.cloverdx.com/t/cloeveretl-for-oracle-identity-analytics/728/2 "2010-07-16T07:56:32Z")

</div>

Hello,  
for joining data from one stream use [Denoramlizer component](http://wiki.cloveretl.org/doku.php?id=components:transformers#denormalizer) with following code:

```auto
//#TL
// This transformation defines the way in which multiple input records 
// (with the same key) are denormalized into one output record. 
string data = '"';
// This function is called for each input record from a group of records
// with the same key.
function append() {
	data = concat(data, $field2, ',');
}

// This function is called once after the append() function was called for all records
// of a group of input records defined by the key.
// It creates a single output record for the whole group.
function transform() {
	$field1 := $field1;
	$field2 := concat(substring(data,0,length(data) - 1),'"');
	$field3 := $field3;
	$field4 := $field4;
  return OK
}

// Called after transform() to return the resources that have been used to their initial state
// so that next group of records with different key may be parsed.
function clean() {
	data = '"';
}

```

To partition output data to different files, set _partitionKey_ attribute on [DataWriter](http://wiki.cloveretl.org/doku.php?id=components:writers#datawriter). You can specify the place of partition tag in file url, eg: _${DATAOUT\_DIR}/file#.txt_
