질문글은 처음 올려봅니다.
다름이 아니라 Dynamic Sql을 Procedure내부에 삽입을 했는데
처음 Sql은 실행이 되는데 두번째가 실행되지 않네요..
소스를 보면
PROCEDURE resetSequence(sequence_name IN VARCHAR2, curValue
IN NUMBER, step IN NUMBER)
IS
BEGIN
DECLARE
DDL_STR VARCHAR2(1024);
DML_STR VARCHAR2(1024);
BEGIN
IF curValue <> 0 THEN
DDL_STR := 'ALTER SEQUENCE ' || sequence_name || ' INCREMENT BY
-' || TO_CHAR(curValue);
EXECUTE IMMEDIATE DDL_STR;
DML_STR := 'SELECT ' || sequence_name || '.nextval FROM
DUAL';
-- DBMS_OUTPUT.PUT_LINE(DML_STR);
EXECUTE IMMEDIATE DML_STR;
END IF;
시퀀스 리셋하는 예젠데.. DDL_STR의 실행은 정상적으로
수행됩니다.
허나 DML_STR은 수행되지 않습니다. 왜 그런걸까요?
이렇게 수행하고 SELECT 시퀀스.currval을 찍어보면 프로시져 돌리기
전의 currval이 나옵니다.
정상수행이 됐다면 0이 나와야 되는데요....
어디가 잘못된걸까요? 도움을 구합니다.
|