Migrating from DatabaseInsert to tDBOutput
with multiple outputs
Update your Job and your multi-output map to replace the deprecated
DatabaseInsert function with tDBOutput
components.
You can follow the same steps to replace the DatabaseUpdate
function.
Information noteImportant: The migration from DatabaseInsert or
DatabaseUpdate with multiple outputs can be tricky. To avoid
issues, make sure to perform the following steps in the order provided.
Before you begin
You have a Job containing a tHMap with multiple outputs that use
DatabaseInsert functions.
You have created a connection to your database in
Talend Studio. For more information, see Setting up a database connection. Make
sure that the schema is identical to the structure used in your map.
About this task
In this example, you have a simple Job with a tFileInputRaw
that reads an XML file containing company information, and a
tHMap that maps the XML data to two database tables. The Job looks like this:
The map used in the tHMap looks like this:
The goal of this example is to remove the deprecated
DatabaseInsert function and keep the same behavior for
the Job.
Procedure
Drag and drop your output database tables from Metadata > Db Connections in your Job, after the tHMap.
Select tDBOutput when prompted, then click
OK.
Link the tDBOutput components to your
tHMap using Row > Main connections and enter a name for each connection.
Information noteImportant: The name of each the output connections must be the
same as the name of the root element of each table in the output
structure of your map. In this example, the output elements are named
employees and departments. To make
the map work correctly, you need to name the connections
employees and departments.
Click Yes when asked if you want to get the schema of
the target component.
In the Mapping perspective, expand the
Representations folder under all the database table
structures used as output in your map.
If there is a Map representation, you can go to
the next step.
If there is no Map representation, right-click
Representations and click New
Map.
Open the map used in your Job and click Database on the
Output side, then click Clear
and click OK to remove the representation.
Remove the DatabaseInsert functions in the output
structure.
They can be either on the element corresponding to the name of the
database table or on the Row loop, in the
IO/Database tab.
Click the root element for each table in the output structure,
employees and departments in this example,
and add a WriteURL function in the
IO/Database tab.
Double-click the WriteURL function, click the
[...] button next to the
Representation field and select
Map, then click OK.
Save your map and your Job.
Results
Your Job is now using tDBOutput components instead of the
deprecated DatabaseInsert function. You can run the Job and you
should get the same result.
Information noteTip: You may need to close and reopen your Job to remove the error icon on
the tHMap.
Did this page help you?
If you find any issues with this page or its content – a typo, a missing step, or a technical error – please let us know!