티스토리 뷰
http://kr.forums.oracle.com/forums/thread.jspa?threadID=598160
스토어드 펑션(Stored Function)에서 DML 즉 트랜잭션 발생시 주의해야 할 부분이 있다.
스토어드 펑션의 특징상
SELECT s_fnc('') FROM DUAL;
와 같이 사용할수 있다.
하지만 다음과 같은 스토어드 펑션이 있다면
create or replace function ( p_param in varchar2 )
IS
begin
insert into aaa ( aaa ) values ( p_param);
return '';
end;
/
위의 SELECT 문의 경우 에러를 발생하게 된다.
SELECT -List 절에 스토어드 펑션을 사용할때는 DML작업이 들어가지 않게 해주어야 한다. 특히나 SELECT -List 절에 사용할 경우에는..
다만 다음과 같은 경우에는 사용 가능하나 DML작업이 들어가지 않을경우 이역시도 에러를 내뱉게 된다.
스토어드 펑션(Stored Function)에서 DML 즉 트랜잭션 발생시 주의해야 할 부분이 있다.
스토어드 펑션의 특징상
SELECT s_fnc('') FROM DUAL;
와 같이 사용할수 있다.
하지만 다음과 같은 스토어드 펑션이 있다면
create or replace function ( p_param in varchar2 )
IS
begin
insert into aaa ( aaa ) values ( p_param);
return '';
end;
/
위의 SELECT 문의 경우 에러를 발생하게 된다.
SELECT -List 절에 스토어드 펑션을 사용할때는 DML작업이 들어가지 않게 해주어야 한다. 특히나 SELECT -List 절에 사용할 경우에는..
다만 다음과 같은 경우에는 사용 가능하나 DML작업이 들어가지 않을경우 이역시도 에러를 내뱉게 된다.
1 create or replace function add_n(a NUMBER,b NUMBER) RETURN NUMBER IS
2 PRAGMA AUTONOMOUS_TRANSACTION;
3 BEGIn
4 INSERT INTO ty values(a + b);
5 COMMIT;
6 RETURN (a+b);
7* END;
SQL> /
Function created.
SQL> select add_n(10,20) from dual;
ADD_N(10,20)
------------
30
SQL> select * from ty;
A
---------
30
SQL>
2 PRAGMA AUTONOMOUS_TRANSACTION;
3 BEGIn
4 INSERT INTO ty values(a + b);
5 COMMIT;
6 RETURN (a+b);
7* END;
SQL> /
Function created.
SQL> select add_n(10,20) from dual;
ADD_N(10,20)
------------
30
SQL> select * from ty;
A
---------
30
SQL>
'데이터베이스 > PLSQL' 카테고리의 다른 글
IUD 패키지 샘플 (0) | 2008.02.23 |
---|---|
SINGLE ROW RETURN (0) | 2008.02.23 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카이에 소바주 시리즈
- 꿈
- 튜닝
- 일본전산
- 구글
- 디자인패턴
- oracle
- 커뮤니케이션의 7가지 나쁜 습관들
- 바이오해킹
- 오라클
- getGeneratedKeys
- 퇴사
- ChatGPT
- 프로젝트
- 구조주의 인류학
- auto increment
- 습관의힘
- 다짐
- shared all
- 아웃라이어
- shared everything
- 셀프 조인
- CUBRID
- 성공의길
- DB
- Datapump
- 브레인피드백
- 큐브리드
- NHN 면접
- 데이터과학
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함