我在Oracle数据库中有一个表,当插入一行时,触发器会自动填充三列。要在插入发生时检索这些值,我使用的是一些过程代码,但它不作为命名存储过程存在。代码看起来像这样,但输出更多。
DECLARE widgetId NUMBER;
BEGIN INSERT INTO widget(foo) VALUES('bar')
RETURNING widget_id INTO widgetId;
END;
Spring JdbcTemplate是否提供了调用该代码的任何干净,方便的方法?我看到JdbcTemplate支持调用存储过程的位置,但这似乎要求代码存在于数据库中并且可以通过名称调用。 JdbcTemplate的KeyHolder似乎很有希望,但我不完全确定它是否可用于检索触发器生成的任意数量的值。除了简单的例子,我也找不到任何好运。有没有人对使用JdbcTemplate调用该代码的干净方法有任何见解?
答案 0 :(得分:1)
要调用代码,必须是独立的过程或函数,或者必须是包中的外部可见过程或函数。据我所知,没有办法执行匿名代码。
分享并享受。