2011-12-22 4 views
1

행이 삽입 될 때 트리거에 의해 세 개의 열이 자동으로 채워지는 Oracle 데이터베이스에 테이블이 있습니다. 삽입이 발생하면 해당 값을 검색하려면 일부 절차 코드를 사용하고 있지만 명명 된 저장 프로 시저로 존재하지 않습니다. 코드는 이와 같이 보이지만 더 많은 출력이 있습니다.JdbcTemplate에서 이름이없는 절차 코드 사용

DECLARE widgetId NUMBER; 
BEGIN INSERT INTO widget(foo) VALUES('bar') 
RETURNING widget_id INTO widgetId; 
END; 

스프링 JdbcTemplate은 코드를 깨끗하고 편리한 방법으로 제공합니까? JdbcTemplate이 스토어드 프로 시저를 호출하는 것을 지원하는 곳을 볼 수는 있지만 코드가 데이터베이스에 존재하고 이름으로 호출 될 수 있어야합니다. JdbcTemplate의 KeyHolder는 유망한 것으로 보이지만 트리거로 생성 된 임의의 수의 값을 검색하는 데 사용할 수 있는지 확실하지 않습니다. 나도 간단한 예제가 아닌 많은 것을 찾지 못했다. 누구든지 JdbcTemplate을 사용하여 코드를 호출하는 명확한 방법에 대한 통찰력을 가지고 있습니까?

+0

예제에서 머리를 긁적 거리는 사람들을위한 참고 자료에서 그 절차 코드는베이스베이스의 다른 곳에서 찾은 예제를 기반으로했으며, JDBC가 생성 된 값을 반환하는 데 많은 지원을했기 전에이 코드가 holdover라고 가정합니다. 요즘 더 우아한 솔루션은 KeyHolder.getKeys(). get ("generate_value_column_name")을 사용하여 JDBC 템플릿에 KeyHolder를 제공하고 생성 된 값을 검색하는 것입니다. 나는 그것이 누군가를 돕기를 바랍니다. – spaaarky21

답변

1

코드는 독립 실행 형 프로 시저 또는 함수 여야하며 패키지에서 외부에서 볼 수있는 프로 시저 또는 함수 여야합니다. 아는 한 익명의 코드를 실행할 방법이 없습니다.

공유하고 즐기십시오.

+0

그건 내가 두려워했던거야. 저를 확인해 주셔서 감사합니다. – spaaarky21