Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Forms: Database Exporter

A Database Exporter allows data held in a Stream to be written to a Datasource.

Form: Database Exporter

...

The Database Exporter form contains a number of tabsfollowing fields are configured for database exporters:

FieldDescription
DetailsThe main details required for Database Exporter configuration.
Query StringThe query string used to write Stream data into the Datasource.
AdvancedDetails for advanced Database Exporter configuration - in many cases, you do not need to enter anything in this tab.
Input MultiplierAn input multiplier expression.
DescriptionA free text field for you to enter a description of the Database Exporter.

Form Icons

The form provides the standard form icons.

...

The following fields are configured on the Details tab:

The Datasource that this Database Exporter will write to.
FieldDescription
NameName of the Database Exporter.
Datasource
NameName of the Database Exporter.
EnabledTick when the configuration is complete and the Database Exporter is ready to be used.
DatasourceThe Datasource that this Database Exporter will write to.
Statement ExpressionThe query that will be used to write to the target. SeeĀ query string for details.
PL/SQLIf ticked, a PL/SQL anonymous block can be used to write to the target Datasource.
Input Multiplier
Input Multiplier

This expression works in the same way as the Input Multiplier Expressions on Streams and File Exporters. A complete export is carried out for each value in the list of values returned by the Input Multiplier Expression. If the Input Multiplier Expression evaluates to an empty list then no export will be carried out. If no Input Multiplier Expression is set, a single export will be carried out.

Advanced
Fields to Update in Source Stream
Record Export TimeIf required, select an attribute from the input Stream from the drop down list. If an attribute is selected, when the exporter writes a record to the target Datasource the selected attribute in the input record will be updated with the export time.
If a record in the input Stream is not exported, this attribute will be left blank.
If a record is exported - but the export is rolled back - the attribute will be updated, and set back to a blank record.
Warning: if a record fails to export then this attribute will still be populated, even in the case that the export transaction in the target Datasource is rolled back.
Record Export StatusIf required, select an attribute from the input Stream from the drop down list. If an attribute is selected, when the exporter writes a record to the target Datasource the selected attribute in the input record will be updated with the export status (success or fail).
If a record in the input Stream is not exported, this attribute will be left blank.
If a record is exported - but the export is rolled back - the attribute will be updated, and set back to a blank record.
Warning: if a record fails to export then this attribute will still be populated, even in the case that the export transaction in the target Datasource is rolled back.
Record ResponseIf required, select an attribute from the input Stream from the drop down list. If an attribute is selected, when the exporter writes a record to the target Datasource the selected attribute in the input record will be updated with any export error messages.
If a record in the input Stream is not exported, this attribute will be left blank.
If a record is exported - but the export is rolled back - the attribute will be updated, and set back to a blank record.
Warning: if a record fails to export then this attribute will still be populated, even in the case that the export transaction in the target Datasource is rolled back.
EnabledTick when the configuration is complete and the Database Exporter is ready to be used.

...

The following fields are configured on the Query String tab:

FieldDescription
Uses PL/SQLIf ticked, a PL/SQL anonymous block can be used to write to the target Datasource.
Query StringThe query that will be used to write to the target Datasource. See below for details.
Exporter Performance Settings
Parallel Exporters

If required, you can specify that the exporter should use a number of parallel exporters. Each buffer of records read from the input pipe will be divided across the parallel exporters. The restriction applied to this is that if Group By fields are specified in the input Pipe to the exporter, all records with the same Group By key will be exported by the same exporter. (This is to help reduce contention in the target Datasource, writing to tables or calling APIs.)

If no value is specified here then only a single exporter will be used.

The Commit Size - also set on this tab - is per exporter i.e. each exporter will commit separately whenever it exports the number of records specified as the commit size

Errors Before RollbackIf required, you can set the maximum number of errors found, while exporting across all exporters, before the exporter will rollback all uncommitted transactions from all exporters.
If no value is specified, the exporter will never rollback, no matter how many errors are found.
If 1 is specified, a single error will cause a rollback.
Commit SizeTells the exporter to commit records in batches of the specified size.
Errors Before StoppingIf required, you can set the maximum number of errors found, while exporting across all exporters, before the exporter will stop attempting to export records to the Datasource.
This is useful where you have set Errors Before Rollback (also configured on this tab), but wish to continue to try to export records to get view of how successful the remaining export would have been. Any records that the exporter attempts to export after the Errors Before Rollback limit has been passed will always be rolled back, even if they are successful.
If no value is entered, the exporter will stop when the Errors Before Rollback limit is reached.
Timeout (secs)

Tells the exporter to timeout each export operation after a number of seconds. If an export operation does time out, the operation will be abandoned and an error will be reported. Each record that is timed out is considered to be a single error when assessing whether the entire export should be stopped and/or rolled back - see Error Before Rollback below.

If no value is specified, the duration of an export operation is unlimited.

HELPDEVTODO: not yet added

Datasource Instance Expression

The target Datasource for this exporter may list multiple database instances.
Each Datasource Instance is identified by a unique string. This expression should evaluate to a string which allows the Database Exporter to determine the instance to use.
If no value is entered then the Database Exporter will assume that there is only one instance and will use that one by default. If there is more than one instance and no expression is provided here then an error will be thrown during analysis.
Description
DescriptionDescription of the database exporter.

Anchor
databaseExporterQueryString
databaseExporterQueryString
Database Exporter Query String

Query String Description

Database Exporters can be set up to update a database using either a plain SQL query or PL/SQL. If you want to use PL/SQL tick the box Uses PL/SQL.

Plain SQL query

Enter an insert or update query just as you would to edit the database directly. The only important difference when creating queries in PhixFlow is that expressions must be enclosed in curly braces i.e. start with a '{' and end with '}'. This includes referencing an attribute name from the input Stream - which is just a simple expression.

...

This query performs the same inserts as the previous example, but in this case we are converting the StartDate string value to a date using a database function.

PL/SQL

As for a plain SQL query, you can write PL/SQL just as you would to run against the database directly - but putting any PhixFlow expressions in curly braces i.e. starting with a '{' and ending with '}'.

...

In this example we are loading international codes into a database, as in the plain SQL examples. Here, we want to insert a new value if no value already exists in the table for the Operator/Code combination; otherwise we will edit the existing record with the START_DATE of the current value that we have read from the input stream.

...

The following fields are configured on the Advanced tab:

...

The following fields are configured on the Input Multiplier:

...

This expression works in the same way as the Input Multiplier Expressions on Streams and File Exporters. A complete export is carried out for each value in the list of values returned by the Input Multiplier Expression. If the Input Multiplier Expression evaluates to an empty list then no export will be carried out. If no Input Multiplier Expression is set, a single export will be carried out.

...

Form Icons

The form provides the standard form icons.

See Also