728x90
반응형
특별히 일반 대화식 온라인 응용을 실행 시간(Runtime)에 구성할 수 있는 삽입 SQL
1) 터미널로부터 명령문 접수
2) 입력된 멸령문의 분석
3) 데이터베이스에 대한 적절한 SQL 명령문 지시
4) 터미널로 메세지나 결과 회송
실행 시간에 동적으로 작성하여 곧바로 실행 시키는 것
-- 호스트 변수
VARCHAR [dynamicSQL 변수명]; -- 문자 스트링 변수
[dynamicSQL 변수명] = "DELETE FROM [테이블명]
WHERE [조건]";
EXEC SQL PREPARE objSQL FROM :[dynamicSQL 변수명];
EXEC SQL EXECUTE objSQL;
objSQL : 호스트 프로그램 변수가 아니라 별도의 선언 없이 사용된 SQL 변수(SQL Variable)로서 dynamicSQL에 저장된 SQL문의 목적 코드를 저장하는데 사용
PREPARE문과 EXECUTE문을 하나의 IMMEDIATE문으로 표현
EXEC SQL EXECUTE IMMEDIATE :[dynamicSQL 변수명];
목적 코드로 변환시키는 PREPARE문에는 어떤 종류의 SQL문도 포함될 수 있음
스크링으로 표현되는 SQL문에는 호스트 변수를 포함시킬 수 없으나 물음표(?)로 표현하는 매개 변수는 포함 시킬 수 있음
VARCHAR [dynamicSQL 변수명];
[dynamicSQL 변수명] = "DELETE FROM [테이블명]
WHERE [필드1] = ?
AND [필드2] < ?";
EXEC SQL PREPARE objSQL FROM :[dynamicSQL 변수명];
...
[필드1] = "대응값";
[필드2] = 12;
-- ?에 대응하는 값들은 터미널로부터 입력 받을 수 있음
EXEC SQL EXECUTE objSQL USING :[필드1], :[필드2];
# 온라인 응용
온라인 터미널로 데이터베이스 접근을 지원하는 응용 프로그램
728x90
반응형
'Database > Theory' 카테고리의 다른 글
Database。함수 종속(FD, Functional Dependency) (0) | 2020.12.29 |
---|---|
Database。이상(Anomaly) (0) | 2020.12.16 |
Database。삽입 SQL(Embedded SQL) - 커서(Cursor) (0) | 2020.11.28 |
Database。삽입 SQL(Embedded SQL) - EXEC SQL (0) | 2020.11.27 |
Database。스키마(Scheme)와 카탈로그(Catalog) (0) | 2020.10.26 |