HANA:提交日志表而不是事务表

HANA: Commit to log tables but not transactional tables

我有一个看起来像这样的程序:

CALL CreateSalesOrder(iv_customer => lv_customerId);
CALL LogMessage('Created sales order');
CALL CreateSalesOrderDetail(iv_customer => lv_customerId, iv_product => lv_productId);
CALL LogMessage('Created sales order detail');

无论交易是否成功,我都希望将日志消息写入 table。我需要能够在发生故障时查看日志消息,并且我的日志消息包含有关我正在处理的数据状态的详细信息。提供可用数据有助于解决问题。

有什么方法可以将数据提交给一个 table,同时为我的 table 的其余部分维护安全事务?

找到答案。这个概念称为自主事务,使用与 Oracle 中相同的名称。

http://scn.sap.com/community/developer-center/hana/blog/2014/12/01/new-sqlscript-features-in-sap-hana-10-sps9

BEGIN AUTONOMOUS TRANSACTION
   INSERT INTO LogTable () VALUES ();
   COMMIT;
   RESIGNAL;
END;

此功能自 SPS09 起可用。