본문 바로가기

ProC

Pro*C의 기초

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