sqlout Processor
sqlout
is a processor used to write records to a database.
Common Settings
Setting | Description | Data Type | Default |
---|---|---|---|
service.type=sqlout | indicates the type of processor | string | n/a |
datasource.name | name of the database connection to use | string | n/a |
timeout | sql INSERT timeout | string | n/a |
sqlout
requires the input to be xml and in the following format:
<insertStatements>
<insertStatement>
<sql>
insert statement
</sql>
<params>
<param type="varchar" colName="tedi_row_id">1</param>
<param type="varchar" colName="tedi_publish_dt">20240904</param>
</params>
</insertStatement>
</insertStatements>
You will find it best and easiest to use xslt
to format your input data, for example:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:exsl="http://exslt.org/common"
xmlns:func="http://exslt.org/functions"
xmlns:random="http://exslt.org/random"
xmlns:regexp="http://exslt.org/regular-expressions"
xmlns:set="http://exslt.org/sets"
xmlns:str="http://exslt.org/strings"
version="1.0"
extension-element-prefixes="date exsl func random regexp set str">
<xsl:output method="xml" encoding="utf-8" omit-xml-declaration="no" indent="yes" />
<xsl:template match="/">
<insertStatements>
<xsl:choose>
<xsl:when test="/tedi/record">
<insertStatement>
<sql>
<![CDATA[
INSERT INTO sub_single_in (
tedi_row_id
, tedi_publish_dt
, a_bit
, a_bool
, a_smallint
, a_int
, a_bigint
, a_decimal
, a_string
, a_datetime
) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10)
]]>
</sql>
<xsl:for-each select="//tedi/record">
<xsl:call-template name="test" />
</xsl:for-each>
</insertStatement>
</xsl:when>
</xsl:choose>
</insertStatements>
</xsl:template>
<xsl:template name="test">
<params>
<param type="varchar" colName="tedi_row_id">
<xsl:value-of select="tedi_row_id" />
</param>
<param type="varchar" colName="tedi_publish_dt">
<xsl:value-of select="tedi_publish_dt" />
</param>
<param type="varchar" colName="a_bit">
<xsl:value-of select="a_bit" />
</param>
<param type="varchar" colName="a_bool">
<xsl:value-of select="a_bool" />
</param>
<param type="varchar" colName="a_smallint">
<xsl:value-of select="a_smallint" />
</param>
<param type="varchar" colName="a_int">
<xsl:value-of select="a_int" />
</param>
<param type="varchar" colName="a_bigint">
<xsl:value-of select="a_bigint" />
</param>
<param type="varchar" colName="a_decimal">
<xsl:value-of select="a_decimal" />
</param>
<param type="varchar" colName="a_string">
<xsl:value-of select="a_string" />
</param>
<param type="varchar" colName="a_datetime">
<xsl:value-of select="a_datetime" />
</param>
</params>
</xsl:template>
</xsl:stylesheet>