변수에 select문의 결과 값을 가지고 있을수 있을까요? 또는 다른곳 데이터를 지니고 다니거나 .. 0 5 1,342

by 날아라갑을 [PL/SQL] ORACLE PL/SQL 변수 [2018.01.29 16:12:42]


변수에 데이터를 들고 다니고 싶은데요

1.

L_PRE_BILL_SEQ VARCHAR2(100) := SA_BILL_SEQ.NEXTVAL;

이렇게하면 채번된 내용에 +1해서 L_PRE_BILL_SEQ라는 변수에 잘들고 다니고 있는데요..

+1이 처리 되지 않은 데이터를 가지고 있고 싶은데 어떻게 해야할까요?

L_PRE_BILL_SEQ VARCHAR2(100) := SA_BILL_SEQ; 이렇게하면 에러가 나는데 ..

 

2.

본래 하고싶었던 것은 L_PRE_BILL_SEQ VARCHAR2(100) := (SELECT * FROM A_TABLE WHERE 조건 (조건에 맞는 데이터값1개); 

이렇게 해서 가지고오고 싶었지만, 안되는것같고 .. 

가장 가능성있을것 같은게 1번 내용인데... 방법이 있을까요 ...?

by 우리집아찌 [2018.01.29 16:24:06]

SA_BILL_SEQ.CURRVAL


by 날아라갑을 [2018.01.29 16:54:02]

정말 감사합니다!

그럼 혹시 2번 질문에 대한 내용에 대한 방법도 있을까요 ..?

아니면 역시..안되는건가요


by 우리집아찌 [2018.01.29 17:24:15]

위에 올려주신 문장으로는 판단이 안서긴한데

동시에 사용자가 많으면 잘못된 값을 가져올수있습니다.


by 날아라갑을 [2018.01.29 18:06:09]

어헛.... 그.. 그럼 안되겠네요 ;;


by 마농 [2018.01.30 09:29:20]

글쎄요?
CURRVAL 이 현재값을 가져오는 것은 맞지만? 그 개념이 약간 모호합니다..
시퀀스의 현재값이 아닌 NEXTVAL 을 수행한 세션 내에서의 현재값(NEXTVAL 로 얻은 값)입니다.
NEXTVAL 을 수행하지 않은 세션에서는 아예 CURRVAL 을 가져오지 못하고 에러가 납니다.
시퀀스의 NEXTVAL / CURRVAL 의 개념을 잘 알고 사용하셔야 합니다.
두번째 질문은 MAX 를 이용해 가져오는 것 얘기하는 것 같네요?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입