database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 21488 게시물 읽기
No. 21488
Dynamic Sql 도움구합니다.
작성자
머찌니(leslies)
작성일
2005-01-20 10:44
조회수
2,222

질문글은 처음 올려봅니다.

 

다름이 아니라 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이 나와야 되는데요....

어디가 잘못된걸까요? 도움을 구합니다.

이 글에 대한 댓글이 총 1건 있습니다.

언발에 오줌누기 식으로 이렇게 바꾸니까 되네요..

 

    DML_STR := 'DECLARE NO NUMBER; BEGIN SELECT CIS.AUTO_INCREMENT.nextval into NO FROM DUAL; END;';

 

블럭에 넣는 방법말고..

하는 방법 있으면 답변 부탁드립니다.

블럭 변수 지정하는게 지저분한것 같아서요..

 

 

머찌니(leslies)님이 2005-01-20 11:14에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
21491한글이 깨져요... 오라클 9i에서요...
궁금이...
2005-01-20
1424
21490문자필드에서 특정문자를 포함하는 단어전체를 추출할려면어떻게? [2]
김현호
2005-01-20
2335
21489쿼리문 다시 물어볼께요.. [4]
궁금이
2005-01-20
2157
21488Dynamic Sql 도움구합니다. [1]
머찌니
2005-01-20
2222
21487Oracle의 SID, Service Name, Instance 정확한 개념을 알고 싶습니다.
용훈
2005-01-20
1350
21486[질문] 오라클에서 프로세스가 어떤게 돌고 있는지 확인하는 방법이 있나요?
정규성
2005-01-20
1059
21485아카이브로그 모드로 운영중인 DB에 새벽 배치작업으로 인해 로그파일이 너무 많이 쌓이는데 해결방법이 없을까요? [2]
김태진
2005-01-19
2270
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다