kettle job如何利用java的反射机制获取执行的sql语句
kettle job中的JavaScript如何获取同一个job中SQL步骤的执行语句并让执行语句记录在日志中呢?首先写日志需要用到job中JavaScript写日志的方法,其次是利用java反射机制获取执行的sql。
如:
var sqlObj = getJobStep("SQL"); var sql = sqlObj.environmentSubstitute(sqlObj.getSQL()); var logWriter = org.pentaho.di.core.logging.LogWriter.getInstance(); logWriter.logBasic(parent_job.getJobname(), "作业SQL语句打印===================>"+sql); true; function getJobStep(stepName){ var jobMeta = parent_job.getJobMeta(); var jobStep = jobMeta.findJobEntry(stepName, 0, false); var stepObj = jobStep.getEntry(); return stepObj; }
这样就可以将日志优雅地记录在日志文件中了。
扫描公众号,关注更多信息
---------------------------------------------------------------------------------我是分割线--------------------------------------------------------------------------to be a better me, talk is cheap show me the code
版权所有,转载请注明原文链接。
文中有不妥或者错误的地方还望指出,以免误人子弟。如果觉得本文对你有所帮助不妨【推荐】一下!如果你有更好的建议,可以给我留言讨论,共同进步!
再次感谢您耐心的读完本篇文章。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------