在消息流中,可以使用 Filter、Database 和 Compute 节点中提供的 ESQL 数据库函数访问和更新外部数据库资源。调用外部数据库时,可能会发生错误,例如表不存在、数据库不可用或插入的键已存在。
发生这些错误时,代理的缺省操作是生成异常。此行为取决于属性数据库发生错误时抛出异常的设置。如果选择了该复选框,代理停止处理节点,将消息传播到节点的故障终端,并且将错误详细信息写到异常列表。如果想要覆盖缺省行为,并且在节点内 ESQL 中处理数据库错误,则必须清除数据库发生错误时抛出异常复选框。如果不希望特定的 SQL 状态码出现,代理将不抛出异常,而您必须编写 THROW 语句以抛出异常。有关 THROW 的描述,请参阅 THROW 语句。
如果选择在节点中处理数据库错误,可以使用数据库状态函数 SQLCODE 来接收关于在 ESQL 中执行的 DBMS 调用的状态信息。还可以将其包含在当前节点的 ESQL 中的条件语句内,以确认和处理可能的错误。