본문 바로가기

Database/Theory

Database。삽입 SQL(Embedded SQL) - 커서(Cursor)

728x90
반응형

호스트 언어들은 한 번에 하나의 레코드만 취급하는 데 커서(Cursor)는 레코드 집합을 처리하는 데 사용되는 일종의 포인터로 응용 프로그램의 삽입 SQL에만 사용되는 새로운 객체

 

집합에 있는 각 레코드들을 한 번에 하나씩 지시할 수 있게 해서 그 레코드 집합 전체를 처리

 

1. 커서가 필요 없는 데이터 조작

단일 레코드 검색

 

EXEC SQL SELECT Name, Phone
           INTO :sName, :sPhone
           FROM [테이블명]
          WHERE Name = :Name
          
1. SQLSTATE 변수 값 : 00000
2. WHERE절을 만족하는 레코드가 없는 경우 SQLSTATE 변수 값 : 02000
3. 레코드가 둘 이상인 경우 에러 SQLSTATE 변수 값 : 오류 코드

 

# 삽입

 

EXEC SQL INSERT
           INTO [테이블명] ([필드 리스트])
         VALUES (:[변수명1], ..., :[변수명n]);

 

# 수정

 

EXEC SQL UPDATE [테이블명]
            SET [필드] = [필드] + :nNum
          WHERE [조건];
          
nNum 값만큼 증가

 

# 삭제

 

EXEC SQL DELETE
           FROM [테이블명]
          WHERE [필드] = :[변수명]

 

2. 커서를 이용하는 데이터 조작

 

-- 커서 정의
EXEC SQL DECLARE [커서명] CURSOR FOR
          SELECT [필드 리스트]
            FROM [테이블명]
           WHERE [필드] = :[변수명]

-- 질의문 실행
EXEC SQL OPEN [커서명]
DO
     -- 레코드 채취
     EXEC SQL FETCH [커서명] INTO :[변수명1], ..., :[변수명n]
     ...
END

-- 커서 종료
EXEC SQL CLOSE [커서명]
728x90
반응형