# DBLookup

**URL:** <https://forum.cloverdx.com/t/dblookup/299>\
**Category:** CloverDX Platform\
**Created:** [April 1, 2008, 12:00am UTC](https://forum.cloverdx.com/t/dblookup/299 "2008-04-01T00:00:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![erik](https://avatars.discourse-cdn.com/v4/letter/e/b5ac83/32.png) [@erik](https://forum.cloverdx.com/u/erik)\
**Post date:** [April 1, 2008, 12:00am UTC](https://forum.cloverdx.com/t/dblookup/299/1 "2008-04-01T00:00:00Z")

</div>

Hello. I’m new to clover ETL and I have the following problem, basically what I want to do is to lookup for a register in a db, compare it to another one in a txt file, and if they arent equals, filter it and sent it to a trash. But I have a fatal error in the writer and I dont know why, besides, there is not much clover info on net from what I can see.

ERROR [WatchDog] - Phase initialization failed with reason: WRITER …FATAL ERROR !  
WRITER …FATAL ERROR !  
at org.jetel.graph.Phase.init(Phase.java:163)  
at org.jetel.graph.runtime.WatchDog.executePhase(WatchDog.java:565)  
at org.jetel.graph.runtime.WatchDog.call(WatchDog.java:155)  
at org.jetel.graph.runtime.WatchDog.call(WatchDog.java:70)  
at java.util.concurrent.FutureTask$Sync.innerRun(libgcj.so.81)  
at java.util.concurrent.FutureTask.run(libgcj.so.81)  
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(libgcj.so.81)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(libgcj.so.81)  
at java.lang.Thread.run(libgcj.so.81)  
Caused by: java.lang.RuntimeException: Failed initialization of filler buffers :java.lang.IllegalStateException  
at org.jetel.data.formatter.FixLenDataFormatter.initRecordFiller(FixLenDataFormatter.java:134)  
at org.jetel.data.formatter.FixLenDataFormatter.init(FixLenDataFormatter.java:171)  
at org.jetel.util.MultiFileWriter.prepareTargets(MultiFileWriter.java:165)  
at org.jetel.util.MultiFileWriter.init(MultiFileWriter.java:126)  
at org.jetel.component.FixLenDataWriter.init(FixLenDataWriter.java:218)  
at org.jetel.graph.Phase.init(Phase.java:158)

The grf is:

[code]\<?xml version="1.0" encoding="UTF-8"?\>  
  
  
  
  
  
  
  
  
  
  
  
  
  
\<![CDATA[select \* from clientes where Numero\_abonado\_A=?]]\>  
  
  
  
  
  
\<![CDATA[  
import org.jetel.component.DataRecordTransform;  
import org.jetel.data.DataRecord;  
import org.jetel.data.RecordKey;  
import org.jetel.data.lookup.LookupTable;  
import org.jetel.exception.JetelException;  
import org.jetel.graph.TransformationGraph;

public class reformatTest extends DataRecordTransform{

LookupTable mylookup;

public boolean init(){

try {  
mylookup = graph.getLookupTable(“LookupTable0”);  
mylookup.init();  
} catch (Exception e) {  
// TODO Auto-generated catch block  
e.printStackTrace();  
}

// create key  
String lookupKeyStr={“Numero\_abonado\_A”};  
RecordKey key=new RecordKey(lookupKeyStr,sourceMetadata[0]);  
key.init();  
mylookup.setLookupKey(key);  
return true;  
}

public boolean transform(DataRecord source, DataRecord target)  
{  
DataRecord employee;

employee=mylookup.get(source[0]);

if (employee==null) {// skip this one  
errorMessage = “Order: " + source[0].getField(0).getValue() + " - no corresponding record in lookup table”;  
System.out.println("Dentro del source: "+source[0]);  
return false;  
}

//target[0].getField(0).setValue(source[0].getField(0).getValue());  
//target[0].getField(1).setValue(source[0].getField(1).getValue());  
//target[0].getField(2).setValue(source[0].getField(2).getValue().toString());  
//target[0].getField(3).setValue(employee.getField(0).getValue().toString());  
//target[0].getField(4).setValue(employee.getField(1).getValue());

return true;  
}  
}  
]]\>

And the metada is:

\<?xml version="1.0" encoding="UTF-8"?\> 

This is based on graphDBLookup.grf of the examples.

Thanks so much. I really need this.[code][/code][/quote][code][/code]

---

<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:** [April 2, 2008, 11:02am UTC](https://forum.cloverdx.com/t/dblookup/299/2 "2008-04-02T11:02:02Z")

</div>

Hi,  
for joining data from flat file with database attends [DBJoin Component](http://wiki.clovergui.net/doku.php?id=components:joiners#dbjoin).  
See following examples:  
[DBJoin example](http://wiki.clovergui.net/doku.php?id=database%5Fexamples#dbjoin%5Fexample)  
[DB unload parametrized example](http://wiki.clovergui.net/examples/graphDBUnloadParametrized.grf)  
[Lookup join example](http://wiki.clovergui.net/examples/graphLookupJoin.grf)

For writing data to file use rather Universal Data Writer than Fixlen DW. In GUI you can use edge debugger for data preview.
