2009-07-17 2 views
9

테이블의 트리거에 의해 삽입 될 때 기본 키가있는 테이블이 있습니다. 트리거는 테이블에 대해 생성 한 시퀀스에서 다음 시퀀스 번호를 가져 와서 삽입시의 키의 값 이제 우리는 insert 프로 시저 (PL \ SQL)에서 SQL Server의 @@ scope_identity를 선택하는 것과 비슷한 값을 반환 할 수 있기를 원합니다. 나는 하루 종일 인터넷 검색을 해왔고 근본적으로 아무 것도 떠오르지 않았다.오라클 - 새로 삽입 된 키 값을 반환합니다.

감사합니다.

답변

19

가 트리거로 작동하지만 돌아 오는 절은 당신이 찾고있는 무엇을 할 수 있다면 나도 몰라 : 우리가 새로 만든 키와 출력 매개 변수를 채울 수 있다면

INSERT INTO my_table (col_1, col_2) 
    VALUES ('foo', 'bar') 
    RETURNING pk_id INTO my_variable; 
+0

예 -이 부분은 재미있어 보이며 시도해 보겠습니다. –

+0

트리거와 함께 챔피언처럼 일했습니다! 매번 트리거에 의해 생성 된 새로운 키 값을 절대적으로 얻습니다. 감사. –

+0

"누락 된 키워드"라고 말하면서 오류가 발생하지만 PHP로이를 시도하고 있습니다. –

0

나는 Callable Statement를 찾고 있다고 생각합니다. Java에서 얻으려는 경우 javadoc입니다.

+0

잘 작동 것 그 PL \ SQL - 기본적으로 내가 질문하고있는 것입니다. 키는 삽입 트리거에 채워집니다 - 삽입 저장 프로 시저에서 어떻게 가져 옵니까? –

0

the_sequence.currval을 반환하지 않는 이유는 무엇입니까?

+0

불행히도 - 시퀀스가 ​​둘 이상의 테이블에서 사용됩니다. –

관련 문제