使用Scriptella ETL,我最近了解了onerror标签。它工作正常,但我想制作一个通用代码,只要发生任何错误,就会将代码和消息插入数据库。
我正在使用它:
<onerror codes="42604,42617,42000,1366" >
INSERT INTO demo_travel.test_log(Time_Now, ErrorName) values ( sysdate(),'eeuhue');
</onerror>
哪个有效,但我想要这样的事情:
<onerror >
INSERT INTO demo_travel.test_log(Time_Now, ErrorName,ErrorMSG) values ( sysdate(),Error.code, error.msg);
</onerror>
答案 0 :(得分:1)
不幸的是,没有简单的方法可以实现这一目标。 onerror基于开发人员知道他正在处理的错误的假设。但我确实同意这一点有待改进。 Feature request: Allow different connection-id in onerror element中部分解决了这个问题。
因此,对于1.1或更早版本,这是不可能的。对于current development snapshot of 1.2,可以从{error}变量推断出此信息,如ticket中所述。我还创建了一个subticket来公开错误的其他属性。