Pro*C의 기초
Embedded SQL 문
어플리케이션에서 SQL문과 C문장과 C변수와 SQL문장의 구조를 모두 자유롭게 사용할수 있다.
호스트 프로그램에서 SQL문장을 사용할 경우 “EXEC SQL”이란 키워드를 사용하여 SQL문을 시작하고
문장의 마지막에는 세미콜론(“;”)으로 종결되도록 한다. EXEC SQL로 시작하여 ‘;’로 종료하는 것이 Embedded SQL이다.
선언(Declarative) | |
명령 | 설명 |
ARRAYLEN | PL/SQL에서 호스트 array를 사용 |
BEGIN DECLARE SECTION END DECLARE SECTION | ANSI모드에서 호스트 변수를 사용하기 위한 명령 |
DECLARE | Oracle object의 이름 부여 |
INCLUDE | 현재위치에 파일 대치 |
TYPE | 데이터 타입의 동일화 |
VAR | 변수의 동일화 |
WHENEVER | Runtime에러 핸들링 |
실행(Executable) | |
---|---|
ALLOCATE | CURSOR변수에 영역할당 문장 |
ALTER ANALYZE AUDIT COMMENT CONNECT CREATE DROP GRANT NOAUDIT RENAME REVOKE TRUNCATE CLOSE |
오라클의 정의, 오라클에 접속제어 문장 |
DELETE FETCH INSERT LOCK TABLE OPEN SELECT UPDATE EXPLAIN PLAN |
데이터 조작 및 데이타 추출 문 |
COMMIT ROLLBACK SAVEPOINT SET TRANSACTION |
트랜잭션 제어문 |
DESCRIBE EXECUTE PREPARE |
Dynamic SQL사용을 위한 문 |
ALTER SESSION SET ROLE |
세션 제어문 |
<Table 2-1 Embedded SQL문>
Embedded SQL의 사용
SQL문들은 C문장과 자유롭게 혼용하여 사용할 수 있다.
다만 위의 SQL문들의 앞에 “EXE SQL”이라는 단어를 먼저 쓰고 문장의 마지막에세미콜론(“;”)을 사용하면 된다.
Pro*C 프리컴파일러는 “EXE SQL”로 시작하는 문장을 ORACLE 런타임 라이브러리 SQLLIB를 CALL하는 문장으로 변환해 준다.
ROLLBACK WORK; : Interactive
EXEC SQL ROLLBACK WORK : Embedded SQL
위의 두 문장은 똑같은 결과를 나타낸다.
첫번째 문장은 Interactive SQL환경에서 사용하고 (SQL*Plus) 두번째 문장은Pro*C 프로그램에서 사용한다.
Static 대 Dynamic SQL문
대부분의 응용프로그램은 static SQL문과 고정된 트랜잭션을 사용하지만 프로그램에 따라서 Dynamic SQL을 사용할 수 도 있다.
STATIC SQL문은 각 SQL문들이 실행되어지기 전에 어떤 SQL명령이 수행되고, 또 어떤 데이타베이스 테이블이 변경되는지, 어떤 컬럼이 UPDATE되는지 알고 있다.
반면에 DYNAMIC SQL은 어플리케이션 프로그램이 실행되는 시점에서 SQL문장을 만들어 실행하게 프로그램 해야 할 경우 사용한다.
이것은 실행되는 시점에서만 어떤 SQL이수행되는지 알 수 있다.
Embedded PL/SQL블럭의 사용
Pro*C 컴파일러는 Embedded PL/SQL문장을 Embedded SQL문장과 같이 다룬다.
PL/SQL은 모든 데이터 조작과 트랜잭션 제어SQL문을 사용할 수 있기 때문에 Embedded PL/SQL에서는 ORACLE의 데이타를 유연하고 안전하게 사용할 수 있다.
호스트변수와 Indicator변수
호스트변수는 오라클과 프로그램사이의 데이타나 상태를 주고 받는데 사용되는 변수이다.
호스트변수는 Pro*C프로그램 어디서나 사용가능하나. 단 SQL문 내에서는 콜론(‘:’)을앞에 붙여 사용한다.
호스트변수에는 C의 Struct 가지는 것이 있다. (VARCHAR 타입) Indicator변수는 short integer형으로 호스트변수에 콜론으로 붙여
호스트변수의 상태나값을 얻고자 할 경우 사용한다.
HOST VARIABLE
호스트변수는 오라클 데이타베이스와 어플리케이션 프로그램사이에 데이터 통신을 담당한다.
호스트변수는 오라클과 어플리케이션이 공유하쫍부 늴분으로 같이 참조할 수 있다.
호스트변수를 사용하여 오라클에 데이타를 전달하고, 또 오라클 데이타베이스에서 데이터 또는상태정보를 프로그램으로 받을 수 있다.
Embedded SQL문장에서 HOST변수는 콜론(“:”)을 변수 앞에 붙여서 사용한다.
'ProC' 카테고리의 다른 글
SQL문 기본 (0) | 2011.10.16 |
---|---|
Pro*C 개요 (0) | 2011.10.16 |
[PRO*C] 멀티 쓰레드 프로그램을 만들어서 돌리구 있씁니다. (0) | 2011.10.16 |
[ORACLE] pro*c makefile 만들기 (0) | 2011.10.16 |
Make file for Pro*c (0) | 2011.10.16 |