PRO*C VERSION MATRIX 및 VERSION 별 특성

제품 : PRECOMPILERS
작성날짜 : 1998-02-19
PRO*C version matrix 및 version 별 지원 내용
===========================================
[1] PRO*C 의 version 별 지원 내용
RDBMS 의 version 과 PRO*C 의 version 별 지원내용은 다음과 같다.
PRO*    Last    RDBMS    Languages
Version Version Version
======================================================================
1.3     1.3.20  <6.0.35      PRO*C
1.4     1.4.15/6 6.x          "
1.5     1.5.10   7.0.x        "
1.6     1.6.7    7.1.x        "
1.6     1.6.9    7.2.x        "
2.0     2.0.6    7.1.x        "
2.1     2.1.3    7.2.x        "
2.2     2.2.?    7.3.x        "
[2] 각 version 의 pro*c의 precompile option 추가 부분과 header file
위치는 다음과 같다.
(1) version 1.4
Location: $ORACLE_HOME/proc/demo
File: proc.mk
Build from "prog.pc":  make -f proc.mk prog
Where to add options:  edit PRO14FLAGS
Header files in:       $ORACLE_HOME/proc/lib
(2) version 1.5
Location: $ORACLE_HOME/proc/demo
File: proc.mk
Build from "prog.pc":  make -f proc.mk prog
Where to add options:  edit PROFLAGS
Header files in:       $ORACLE_HOME/proc/lib
(3) verion 1.6 , 1.7,1.8
Location: $ORACLE_HOME/proc16/demo
File: proc16.mk
Build from "prog.pc":  make -f proc.mk prog
Where to add options:  edit PCCFLAGS
Header files in:       $ORACLE_HOME/sqllib/public
(4) version 2.0, 2.1
Location: $ORACLE_HOME/proc/demo
File: proc.mk
Build from "prog1.pc": make -f proc.mk EXE=prog OBJS="prog1.o prog2.o"
  and "prog2.pc"
Where to add options:  add PROFLAGS
Header files in:       $ORACLE_HOME/sqllib/public
(5) version 2.2
Location: $ORACLE_HOME/precomp/demo/proc
File: proc.mk
Build from "prog1.pc": make -f proc.mk build EXE=prog OBJS="prog1.o
prog2.o"
  and "prog2.pc"
Where to add options:  add PROCFLAGS
Header files in:       $ORACLE_HOME/precomp/public
[3]다음은 각 VERSION 별 지원 내용을 살펴 보기로 한다.
(1) VERSION 1.4
1. precompiler option 의 추가된 부분은 LINES=YES option지정시 outpute 에
#line directives 생성 지원되어debugging 에 도움울 줄수 있게
되었으며, dynamic method 사용시 HOLD_CURSOR=YES option을 사용하여
cursor의 재사용을 방지할 수 있게 되었다. AREASIZE,REBIND option 이
없어지고 MODE=ANSI14 option 을 지원 가능하게 되었다. 그러나 이 ANSI14
option 을 사용시는 4byte inter 인 SQLCODE 를 반드시 declare 해야 한다.
SQLCHECK=SEMANTICS/SYNTAX/NONE (Default는 SYNTAX) 가 사용되고, 더이상
log를 db에 기록하지 않게 되었다.
2  Datatype equivalencing 지원 한다.
    EXEC SQL VAR host_variable IS datatype ;
    EXEC SQL TYPE type is datatype REFERENCE ;
3. Indicator 변수를 사용가능 ( :host INDICATOR :indicator ) 하게
되었으며 또한 AT 절에 host 변수를 사용가능하게 되었다. 또host변수
선언시 auto, extern, static, const, volatile 사용 가능하다.
4. SQLCA 의 sqlerrd(5) 에 0 based parse offset을 저장하였으나, v2.x 의
현재 version 에서는 사용되어지지 않고있다..
5 procedure call 이 가능하게 되었다. (EXEC SQL WHENEVER ... DO
procedure) .
  또한 EXEC SQL WHENEVER ... DO break; 문이 사용가능하다 .
6. Precompiler 실행모듈이 각 언어마다 구분되어 pro*c 의 경우function의
prototypes 생성
   가능하다.
(2) Version 1.5
============
이 version 은 ORACLE RDBMS 7.x 를 지원하는 pro*c version 으로 완벽한
ANSI SQL을 지원한다. 또한 NLS 의 support 도 지원가능하다
1. precompile option 의 변경사항으로는 DBMS=NATIVE/V6/V7 option
지원하며 FIPS=YES로 설정시 ANSI extension 지원한다.
2.  data type 변경사항으로는 fixed length datatypes 지원하는 CHARF,
CHARZ가 사용가능하며 LONG VARCHAR,LONG VARRAW datatypes 지원가능하다.
또한 MLSLABEL 데이타 타입사용 가능하게 되었는데 이는 variable_lengrh
의 binary OS label 을 저장할때 사용가능하다.
3. indicators 없는 host 변수가 null을 fetch하면, DBMS=V6으로
설정하지 않은 경우는
   ORA-1405를 return 함. PL/SQL table을 파라미터로 하는 stored
procedures 호출 가능.
4. 이전 version 에서 space 만 가능했던 (bug) input character string
데이타 타입이
   terminator를 포함하는 경우도 이를 데이타로 인식 가능
(3) version 1.6
==================
1.변경된 precompile option 으로 AUTO_CONNECT=YES option
지원하는데
이를 지정시는 처음 sql 문 수행시 OPS$<username>으로 자동 connect 된다. 
또한 CONFIG=<file> option 지원으로 user 의 configuration 의 name 과
위치를 지정할수 있다. 또한 시스템 config file 사용 가능한데 이의 위치는
UNIX = $ORACLE_HOME/proc16/pccc.cfg, VMS=ora_pcc:pccc.cfg. 이다.
2. SQLSTATE 변수는 SQL문 실행 이후에 값이 설정된다. MODE=ANSI로 설정이
되어 있고, declare section안에 선언되어 있는 경우에만 이값이 설정된다. 
만일 그렇지 않으면 이 값은 무시된다.만약 SQLCODE가 안에 선언되어 있다면,
이 두 변수 모두 값이 설정된다.
 만약 SQLCODE가 밖에 선언되어 있다면 SQLSTATE만 설정된다. SQLSTATE는
coding scheme를 표준화하는데 사용된다. SQLCODE는 declare section
내부에 선언되거나, SQLSTATE, SQLCA가 사용되지 않는 경우에 사용하게 된다.
이 점은 1.5 버젼에서 SQLCA를 declare section 밖에 선언하여, SQLCA와
같이 사용되었던 것과는 차이가 있다.
3. SQLGLS 함수 지원하는데 이는 마지막 문장을 parse 한 후, 문장의 길이
및 타입을 return한다. 
eg) int sqlgls(char *sqlstm ,size_t
*stmlen,size_t *sqlfc)
4. select 문에서 stored function 을 call 할수 있다.
5. 단 SQLCHECK=FULL/SEMANTICS 가 아닌 경우에 FROM 절에서 subquery 가
가능하다. 이는 PL/SQL 의 semantic check 인 경우는 v7.3 에서 가능하다 .
(4) Version 1.8
================ 
1. INDICATOR VARIABLE을 사용하지 않고도 NULL FETCH시 ORA-1405 에러가
발생하지 않도록 UNSAFE_NULL=YES 옵션이 추가됨. UNSAFE_NULL=YES로
설정하면 ORA-1405 를 방지하기 위해서 DBMS=V6 으로 세팅할 필요없이
DBMS=V7 으로 할 수 있음. 단, UNSAFE_NULL=YES를 사용하기 위해서는
MODE=ORACLE 로 설정해야 함.
2. PACKAGE ARGUMENT로 PL/SQL CURSOR(WEAKLY TYPED)를 사용할 수 있는데
예를 들면 TYPE GeneralCurTyp IS REF CURSOR;
3. FROM 절에서 SUBQUERY를 사용할 수 있고 SQLCHECK=SEMANTICS 또는
SQLCHECK=FULL 옵션을 사용할 수 있음.
4. PL/SQL 블럭에서 PL/SQL TABLE과 이와 관련된 다음 함수를 지원.
 a_table(index).EXISTS, a_table.COUNT, a_table.FIRST, a_table.LAST,
a_table.PRIOR(index), a_table.NEXT(index),
a_table.DELETE(start_index,_index), a_table.DELETE.
5. WHERE CURRENT OF CURSOR를 이용해서 MULTI-TABLE VIEW를 통해
KEY-PRESERVED TABLE을 UPDATE 가능.
(5) version 2.0
==================
RDBMS version 7.3에서 부터 makefile 은
ins_precomp.mk,env_precomp.mk, proc.mk의 3 개로 나뉘었다.
Ins_precomp.mk 는 기존의 proc.mk 처럼 precompiler executables 를 build
하기 위한 routine 이고 env_precomp.mk 는 모든 environment 의 변수와
libraray 를 포함한다.
이 file 은 Ins_precomp.mk 와 proc.mk 에 포함되어 사용되어진다.
1. V1.6과 같이 AUTO_CONNECT, CONFIG 옵션 지원. SYSTEM CONFIGURATION
FILE은 UNIX에서는 $ORACLE_HOME/proc/pmscfg.h 이고 VMS에서는
ora_proc20:pmscfg.cfg
2. V1.6과 같이 SQLSTATE 변수와 SQLGLS 함수가 제공된다.
3. C PREPROCESSOR가 포함되어서 #define이 EMBEDDED SQL과 함께 이용될 수
있고 #include 로 PRO*C 헤더화일을 INCLUDE 가능.
4. 구조체를 HOST 변수로 사용 가능. 이것은 SELECT INTO, FETCH INTO 
또는 INSERT시 VALUES 절에 사용될 수 있으나 PL/SQL PROCEDURE에 PL/SQL
RECORD ARGUMENT로 사용할 수는 없음. 구조체 내에 또다른 구조체를 포함할
수는 없지만 ARRAY는 포함할 수 있음.
5. HOST 변수를 BEGIN/END DECLARE SECTION 안에 넣을 필요가 없음.
6. V1.6에서 처럼 SELECT LIST에 STORED FUNCTION의 사용이 가능.
7. SQLCHECK=FULL/SEMANTOCS를 사용하지 않는 경우 FROM 절에 SUBQUERY를
쓸 수 있음.
8. CHARACTER 변수의 BIND TYPE은 MODE 옵션이 아니라 DBMS 옵션에 따라서
결정됨. DBMS=V6/V6_CHAR 인 경우, CHARACTER는 TYPE 1, DBMS=V7(또는
NATIVE이고 ORACLE7에 접속할 때) 에서는 TYPE 97.
9. DBMS=V6_CHAR 는 CHARACTER 변수가 가변 길이 문자열로 다루어질 수
있도록 함.
10. SQLVCP 함수는 VARCHAR ARR 변수를 지정한 길이로 만들어 주므로
VARCHAR를 동적으로 할당할 때 COMPILER가 BYTE ALIGNMENT를 가능하게 함.
11. PRO*C의 PARSE LEVEL을 설정하는 PARSE 옵션.
a) NONE - PRO*C V1과 같음(HOST 변수를 DECLARE SECTION에 넣어야 함.
#define 인식 안함 등)
b) PARTIAL - HOST 변수를 DECLARE SECTION에 넣어야 함
c) FULL - PRO*C V2의 기능 모두 지원
12. EXEC SQL WHENEVER ... DO 함수명(args,...); 와 같이 함수호출시UMENT를
주고 받을 수 있음.
13. #ifdef/#ifndef 와 EXEC ORACLE IFDEF/IFNDEF 에서 사용하기 위한
DEFINE 옵션 지원.
(6) version 2.1
================
1. PRO*C V1.7에서와 같이 char와 IMPLICIT VARCHAR (VARCHAR=YES 옵션과
함께 적절한 C 구조체로 선언된 변수) HOST 변수에서 MULTI-BYTE NLS
CHARACTER 데이타와 MULTI-BYTE 문자열을 지원.
 NLS_CHAR=var1,var2,... 옵션으로 MULTI-BYTE HOST 변수를 지정함.
MULTI-BYTE 리터럴은 다음과 같이 사용된다.
 EXEC SQL SELECT ... WHERE ENAME = N*이경구*;
 단, 이것은 SQLLIB RUNTIME LIBRARY를 통해서 지원되기 때문에 MULTI-BYTE
NLS 문자열은 DYNAMIC SQL에서 사용될 수 없음. NCHAR 데이타타입은 DDL 과
함께 사용될 수 없음.
2. PRO*C V1.7과 같이 NLS_LOCAL 옵션 지원
3. DEF_SQLCODE=YES 로 설정하면 PRO*C는 다음 문장을 생성한다.
 #define SQLCODE sqlca.sqlcode
 SQLCA는 반드시 INCLUDE 되어야 하며 SQLCODE 변수는 선언되어서는 안됨.
4. PRO*C V1.7 과 같이 CURSOR VARIABLE 지원.
5. VARCHAR=YES 로 설정하면 특정한 구조체를 VARCHAR로 인식할 수 있다. 
구조체의 형태를 보면
 struct
 short len;
 char arr[n];
 } host_var;
6. CODE=CPP 로 설정하면 SQLLIB 함수 원형(PROTOTYPE)은 다음과 같이
extern "C" 형식으로 생성됨.
 extern "C" {
 void sqlora( unsigned long *, void *);
 그리고 "//" 와 같은 COMMENT 처리명령을 인식함. 단, CODE=CPP인 경우
PARSE 는 자동적으로 PARTIAL로 설정됨.
 CPP_SUFFIX 옵션은 PRECOMPILE된 화일의 확장자를 지정.
SYS_INCLUDE=(dir1,dir2,...) 옵션은 C 헤더 화일과 다른 위치에 있는 C++
헤더 화일이 있는 디렉토리를 지정. 이 옵션은 PARSE 옵션이 NONE이 아닌
경우에만 필요하다. HEADER 화일을 찾는 위치는 SYS_INCLUDE, 현재 디렉토리,
표준 SYSTEM 디렉토리(UNIX에서 PRO*C 헤더 화일의 위치는
$ORACLE_HOME/sqllib/public), 그리고 INCLUDE 옵션에 지정된 디렉토리이다.

제품 : PRECOMPILERS
작성날짜 : 1998-02-19
PRO*C version matrix 및 version 별 지원 내용
===========================================
[1] PRO*C 의 version 별 지원 내용
RDBMS 의 version 과 PRO*C 의 version 별 지원내용은 다음과 같다.
PRO*    Last    RDBMS    Languages
Version Version Version
======================================================================
1.3     1.3.20  <6.0.35      PRO*C
1.4     1.4.15/6 6.x          "
1.5     1.5.10   7.0.x        "
1.6     1.6.7    7.1.x        "
1.6     1.6.9    7.2.x        "
2.0     2.0.6    7.1.x        "
2.1     2.1.3    7.2.x        "
2.2     2.2.?    7.3.x        "
[2] 각 version 의 pro*c의 precompile option 추가 부분과 header file
위치는 다음과 같다.
(1) version 1.4
Location: $ORACLE_HOME/proc/demo
File: proc.mk
Build from "prog.pc":  make -f proc.mk prog
Where to add options:  edit PRO14FLAGS
Header files in:       $ORACLE_HOME/proc/lib
(2) version 1.5
Location: $ORACLE_HOME/proc/demo
File: proc.mk
Build from "prog.pc":  make -f proc.mk prog
Where to add options:  edit PROFLAGS
Header files in:       $ORACLE_HOME/proc/lib
(3) verion 1.6 , 1.7,1.8
Location: $ORACLE_HOME/proc16/demo
File: proc16.mk
Build from "prog.pc":  make -f proc.mk prog
Where to add options:  edit PCCFLAGS
Header files in:       $ORACLE_HOME/sqllib/public
(4) version 2.0, 2.1
Location: $ORACLE_HOME/proc/demo
File: proc.mk
Build from "prog1.pc": make -f proc.mk EXE=prog OBJS="prog1.o prog2.o"
  and "prog2.pc"
Where to add options:  add PROFLAGS
Header files in:       $ORACLE_HOME/sqllib/public
(5) version 2.2
Location: $ORACLE_HOME/precomp/demo/proc
File: proc.mk
Build from "prog1.pc": make -f proc.mk build EXE=prog OBJS="prog1.o
prog2.o"
  and "prog2.pc"
Where to add options:  add PROCFLAGS
Header files in:       $ORACLE_HOME/precomp/public
[3]다음은 각 VERSION 별 지원 내용을 살펴 보기로 한다.
(1) VERSION 1.4
1. precompiler option 의 추가된 부분은 LINES=YES option지정시 outpute 에
#line directives 생성 지원되어debugging 에 도움울 줄수 있게
되었으며, dynamic method 사용시 HOLD_CURSOR=YES option을 사용하여
cursor의 재사용을 방지할 수 있게 되었다. AREASIZE,REBIND option 이
없어지고 MODE=ANSI14 option 을 지원 가능하게 되었다. 그러나 이 ANSI14
option 을 사용시는 4byte inter 인 SQLCODE 를 반드시 declare 해야 한다.
SQLCHECK=SEMANTICS/SYNTAX/NONE (Default는 SYNTAX) 가 사용되고, 더이상
log를 db에 기록하지 않게 되었다.
2  Datatype equivalencing 지원 한다.
    EXEC SQL VAR host_variable IS datatype ;
    EXEC SQL TYPE type is datatype REFERENCE ;
3. Indicator 변수를 사용가능 ( :host INDICATOR :indicator ) 하게
되었으며 또한 AT 절에 host 변수를 사용가능하게 되었다. 또host변수
선언시 auto, extern, static, const, volatile 사용 가능하다.
4. SQLCA 의 sqlerrd(5) 에 0 based parse offset을 저장하였으나, v2.x 의
현재 version 에서는 사용되어지지 않고있다..
5 procedure call 이 가능하게 되었다. (EXEC SQL WHENEVER ... DO
procedure) .
  또한 EXEC SQL WHENEVER ... DO break; 문이 사용가능하다 .
6. Precompiler 실행모듈이 각 언어마다 구분되어 pro*c 의 경우function의
prototypes 생성
   가능하다.
(2) Version 1.5
============
이 version 은 ORACLE RDBMS 7.x 를 지원하는 pro*c version 으로 완벽한
ANSI SQL을 지원한다. 또한 NLS 의 support 도 지원가능하다
1. precompile option 의 변경사항으로는 DBMS=NATIVE/V6/V7 option
지원하며 FIPS=YES로 설정시 ANSI extension 지원한다.
2.  data type 변경사항으로는 fixed length datatypes 지원하는 CHARF,
CHARZ가 사용가능하며 LONG VARCHAR,LONG VARRAW datatypes 지원가능하다.
또한 MLSLABEL 데이타 타입사용 가능하게 되었는데 이는 variable_lengrh
의 binary OS label 을 저장할때 사용가능하다.
3. indicators 없는 host 변수가 null을 fetch하면, DBMS=V6으로
설정하지 않은 경우는
   ORA-1405를 return 함. PL/SQL table을 파라미터로 하는 stored
procedures 호출 가능.
4. 이전 version 에서 space 만 가능했던 (bug) input character string
데이타 타입이
   terminator를 포함하는 경우도 이를 데이타로 인식 가능
(3) version 1.6
==================
1.변경된 precompile option 으로 AUTO_CONNECT=YES option
지원하는데
이를 지정시는 처음 sql 문 수행시 OPS$<username>으로 자동 connect 된다. 
또한 CONFIG=<file> option 지원으로 user 의 configuration 의 name 과
위치를 지정할수 있다. 또한 시스템 config file 사용 가능한데 이의 위치는
UNIX = $ORACLE_HOME/proc16/pccc.cfg, VMS=ora_pcc:pccc.cfg. 이다.
2. SQLSTATE 변수는 SQL문 실행 이후에 값이 설정된다. MODE=ANSI로 설정이
되어 있고, declare section안에 선언되어 있는 경우에만 이값이 설정된다. 
만일 그렇지 않으면 이 값은 무시된다.만약 SQLCODE가 안에 선언되어 있다면,
이 두 변수 모두 값이 설정된다.
 만약 SQLCODE가 밖에 선언되어 있다면 SQLSTATE만 설정된다. SQLSTATE는
coding scheme를 표준화하는데 사용된다. SQLCODE는 declare section
내부에 선언되거나, SQLSTATE, SQLCA가 사용되지 않는 경우에 사용하게 된다.
이 점은 1.5 버젼에서 SQLCA를 declare section 밖에 선언하여, SQLCA와
같이 사용되었던 것과는 차이가 있다.
3. SQLGLS 함수 지원하는데 이는 마지막 문장을 parse 한 후, 문장의 길이
및 타입을 return한다. 
eg) int sqlgls(char *sqlstm ,size_t
*stmlen,size_t *sqlfc)
4. select 문에서 stored function 을 call 할수 있다.
5. 단 SQLCHECK=FULL/SEMANTICS 가 아닌 경우에 FROM 절에서 subquery 가
가능하다. 이는 PL/SQL 의 semantic check 인 경우는 v7.3 에서 가능하다 .
(4) Version 1.8
================ 
1. INDICATOR VARIABLE을 사용하지 않고도 NULL FETCH시 ORA-1405 에러가
발생하지 않도록 UNSAFE_NULL=YES 옵션이 추가됨. UNSAFE_NULL=YES로
설정하면 ORA-1405 를 방지하기 위해서 DBMS=V6 으로 세팅할 필요없이
DBMS=V7 으로 할 수 있음. 단, UNSAFE_NULL=YES를 사용하기 위해서는
MODE=ORACLE 로 설정해야 함.
2. PACKAGE ARGUMENT로 PL/SQL CURSOR(WEAKLY TYPED)를 사용할 수 있는데
예를 들면 TYPE GeneralCurTyp IS REF CURSOR;
3. FROM 절에서 SUBQUERY를 사용할 수 있고 SQLCHECK=SEMANTICS 또는
SQLCHECK=FULL 옵션을 사용할 수 있음.
4. PL/SQL 블럭에서 PL/SQL TABLE과 이와 관련된 다음 함수를 지원.
 a_table(index).EXISTS, a_table.COUNT, a_table.FIRST, a_table.LAST,
a_table.PRIOR(index), a_table.NEXT(index),
a_table.DELETE(start_index,_index), a_table.DELETE.
5. WHERE CURRENT OF CURSOR를 이용해서 MULTI-TABLE VIEW를 통해
KEY-PRESERVED TABLE을 UPDATE 가능.
(5) version 2.0
==================
RDBMS version 7.3에서 부터 makefile 은
ins_precomp.mk,env_precomp.mk, proc.mk의 3 개로 나뉘었다.
Ins_precomp.mk 는 기존의 proc.mk 처럼 precompiler executables 를 build
하기 위한 routine 이고 env_precomp.mk 는 모든 environment 의 변수와
libraray 를 포함한다.
이 file 은 Ins_precomp.mk 와 proc.mk 에 포함되어 사용되어진다.
1. V1.6과 같이 AUTO_CONNECT, CONFIG 옵션 지원. SYSTEM CONFIGURATION
FILE은 UNIX에서는 $ORACLE_HOME/proc/pmscfg.h 이고 VMS에서는
ora_proc20:pmscfg.cfg
2. V1.6과 같이 SQLSTATE 변수와 SQLGLS 함수가 제공된다.
3. C PREPROCESSOR가 포함되어서 #define이 EMBEDDED SQL과 함께 이용될 수
있고 #include 로 PRO*C 헤더화일을 INCLUDE 가능.
4. 구조체를 HOST 변수로 사용 가능. 이것은 SELECT INTO, FETCH INTO 
또는 INSERT시 VALUES 절에 사용될 수 있으나 PL/SQL PROCEDURE에 PL/SQL
RECORD ARGUMENT로 사용할 수는 없음. 구조체 내에 또다른 구조체를 포함할
수는 없지만 ARRAY는 포함할 수 있음.
5. HOST 변수를 BEGIN/END DECLARE SECTION 안에 넣을 필요가 없음.
6. V1.6에서 처럼 SELECT LIST에 STORED FUNCTION의 사용이 가능.
7. SQLCHECK=FULL/SEMANTOCS를 사용하지 않는 경우 FROM 절에 SUBQUERY를
쓸 수 있음.
8. CHARACTER 변수의 BIND TYPE은 MODE 옵션이 아니라 DBMS 옵션에 따라서
결정됨. DBMS=V6/V6_CHAR 인 경우, CHARACTER는 TYPE 1, DBMS=V7(또는
NATIVE이고 ORACLE7에 접속할 때) 에서는 TYPE 97.
9. DBMS=V6_CHAR 는 CHARACTER 변수가 가변 길이 문자열로 다루어질 수
있도록 함.
10. SQLVCP 함수는 VARCHAR ARR 변수를 지정한 길이로 만들어 주므로
VARCHAR를 동적으로 할당할 때 COMPILER가 BYTE ALIGNMENT를 가능하게 함.
11. PRO*C의 PARSE LEVEL을 설정하는 PARSE 옵션.
a) NONE - PRO*C V1과 같음(HOST 변수를 DECLARE SECTION에 넣어야 함.
#define 인식 안함 등)
b) PARTIAL - HOST 변수를 DECLARE SECTION에 넣어야 함
c) FULL - PRO*C V2의 기능 모두 지원
12. EXEC SQL WHENEVER ... DO 함수명(args,...); 와 같이 함수호출시UMENT를
주고 받을 수 있음.
13. #ifdef/#ifndef 와 EXEC ORACLE IFDEF/IFNDEF 에서 사용하기 위한
DEFINE 옵션 지원.
(6) version 2.1
================
1. PRO*C V1.7에서와 같이 char와 IMPLICIT VARCHAR (VARCHAR=YES 옵션과
함께 적절한 C 구조체로 선언된 변수) HOST 변수에서 MULTI-BYTE NLS
CHARACTER 데이타와 MULTI-BYTE 문자열을 지원.
 NLS_CHAR=var1,var2,... 옵션으로 MULTI-BYTE HOST 변수를 지정함.
MULTI-BYTE 리터럴은 다음과 같이 사용된다.
 EXEC SQL SELECT ... WHERE ENAME = N*이경구*;
 단, 이것은 SQLLIB RUNTIME LIBRARY를 통해서 지원되기 때문에 MULTI-BYTE
NLS 문자열은 DYNAMIC SQL에서 사용될 수 없음. NCHAR 데이타타입은 DDL 과
함께 사용될 수 없음.
2. PRO*C V1.7과 같이 NLS_LOCAL 옵션 지원
3. DEF_SQLCODE=YES 로 설정하면 PRO*C는 다음 문장을 생성한다.
 #define SQLCODE sqlca.sqlcode
 SQLCA는 반드시 INCLUDE 되어야 하며 SQLCODE 변수는 선언되어서는 안됨.
4. PRO*C V1.7 과 같이 CURSOR VARIABLE 지원.
5. VARCHAR=YES 로 설정하면 특정한 구조체를 VARCHAR로 인식할 수 있다. 
구조체의 형태를 보면
 struct
 short len;
 char arr[n];
 } host_var;
6. CODE=CPP 로 설정하면 SQLLIB 함수 원형(PROTOTYPE)은 다음과 같이
extern "C" 형식으로 생성됨.
 extern "C" {
 void sqlora( unsigned long *, void *);
 그리고 "//" 와 같은 COMMENT 처리명령을 인식함. 단, CODE=CPP인 경우
PARSE 는 자동적으로 PARTIAL로 설정됨.
 CPP_SUFFIX 옵션은 PRECOMPILE된 화일의 확장자를 지정.
SYS_INCLUDE=(dir1,dir2,...) 옵션은 C 헤더 화일과 다른 위치에 있는 C++
헤더 화일이 있는 디렉토리를 지정. 이 옵션은 PARSE 옵션이 NONE이 아닌
경우에만 필요하다. HEADER 화일을 찾는 위치는 SYS_INCLUDE, 현재 디렉토리,
표준 SYSTEM 디렉토리(UNIX에서 PRO*C 헤더 화일의 위치는
$ORACLE_HOME/sqllib/public), 그리고 INCLUDE 옵션에 지정된 디렉토리이다.

Similar Messages

  • I have a macbook pro 13" early 2011 version and what to install windows 7 on it via bootcamp but not sure that whether to install x64 or x86 version? which one will work better

    i have a macbook pro 13" early 2011 version and what to install windows 7 on it via bootcamp but not sure that whether to install x64 or x86 version? which one will work better

    There is no need for anyone to use 32-bit version anymore.
    Retail comes with both. Or you can save on just buying 64-bit System Builder disc.
    Better support for today's hardware with larger video graphic memory and systems.
    Better memory management.

  • Why does my MacBook Pro 13" mid 2012 version run quite slowly?

    I used to have a Windows PC, which ran VERY VERY VERY slowly. I heard that Macs did not get viruses and ran very quickly, so I bought a brand new MacBook Pro 13" mid 2012 version (entry level). At first it was running quite smoothly, but after some time it became slower, with boot ups taking about 2-3 minutes, instead of the 30 seconds boot up time I kept on hearing on Internet reviews. Is the RAM (4GB) insufficient? Or is 30 seconds just exaggerated? Launching apps can take quite a while, especially graphics intensive apps such as iMovie. Opening folders in my thumb drive can be quite a pain too, seeing as there is a lot of visible lag in the opening of files and folders.

    Boot times of 2-3 minutes are a little slow, my 15" doesn't do 30 seconds but faster than 2-3 minutes.  From your comments about how you are using the MBP, the entry level model may not have been the best choice...the 13" models have only one graphic processor, the 15" models have two.  The normal-usage Intell 4000 and a discrete AMD that kicks in with graphic intensive software.  If you are going to do a lot of video and games, the discrete processor will be a big help.  Also, 4 GB ram is often more than adequate, but some software really benefits from more ram.
    You can check the ram usage, and cpu usage, by going to Launchpad, Utilities, Activity Monitor.  See what the memory usage is with your software open and active...is the ram being used fully, are there a lot of page ins and page outs?  That means it is using the mass storage as it runs out of memory space.  If that is the case, increasing the ram to 8 GB will help.
    The Activity Monitor can also show you the load on the cpu so that gives an idea of how much you are pushing the system.

  • My macbook pro (10.6.8 version) the screen turns blue, can not operate, forced shutdown, I installed the windows 7 Home Basic version.

    My macbook pro (10.6.8 version) the screen turns blue, can not operate, forced shutdown, I installed the windows 7 Home Basic version.

    To fix your issue is too complicated and lengthy to go into all of it here, it will require the services of person very familiar and experienced with Mac's to first recover your data and then restore OS X back to a functional state, then hopefully achieve the goals you were attempting.
    I advise you hire the services of a local Mac computer support technician experienced in these matters.
    Have them look at your Wifi and computer backup proceedures in the process.
    Good Luck.

  • After editing in lightroom, i transferred the photo to final cut pro. However the photo that shows in final cut pro is the unedited version and a bit blurry. Any ideas?

    after editing in lightroom, i transferred the photo to final cut pro. However the photo that shows in final cut pro is the unedited version and a bit blurry. Any ideas?

    IIs there an export function from Lightroom? Did you export? Does the exported file contain your edit?
    THe hard drive file size doesn't matter. What matters is the image size, it's dimensions in pixels.
    IN FCP press Cmd-J to see the project properties.

  • I am using a MacBook Pro Mac OS X Version 10.6.8

    I am using a MacBook Pro, Mac OS X version 10.6.8  iPhoto 8.1.2
    Suddenly iphoto will not open. I am traveling and taking many pics so I am quite frustrated.
    Any help is appreciated.

    iPhoto problems best posted in the iPhoto forum:
    https://discussions.apple.com/community/ilife/iphoto

  • Is the hard drive better in the MacBook Pro that the Air version?

    Is the hard drive better in the MacBook Pro that the Air version? What are the negatives?

    That is a question only Apple can answer and the purchaser must decide if the price is worth it.  Apples pricing for upgrades in the past has often been such that third party RAM and HHDs/SSDs were less expensive.  However those options are no longer available with the retina MBPs.
    Ciao.

  • FINAL CUT PRO X (the latest version). I'm trying to upload my video to Youtube, I am getting flashing and orange bar in the frame timeline. How to make it STOP!?

    FINAL CUT PRO X (the latest version). I'm trying to upload my video to Youtube, I am getting flashing and orange bar in the frame timeline. How to make it STOP!? It looks like it's rendering somthng but I just want it to stop flashing. I hope it didn't mess up the video...

    You're in totally the wrong place...  this is the Mac Pro (no Book) forum for hardware.  You want
    Final Cut Pro X: Professional Applications: Apple Support Communities
    Hopefully, FCP X has an autosave feature Like Final Cut Pro Studio so that you may already have a recent copy.  If I were in your shoes, I'd try an ESC or something similar before going to a Forced Quit.
    Good luck

  • HT1338 Have a macbook pro 2009 currently at version 10.5.8 need to install new version for i phone 5 but will not let me until I install MAC OS X Version 10.6 cant find this anywhere! Any ideas thanks

    Have a macbook pro 2009 currently at version 10.5.8 need to install new version for i phone 5 but will not let me until I install MAC OS X Version 10.6 cant find this anywhere! Any ideas thanks

    Click here.
    (75139)

  • Hello, I have MacBook Pro with Retina display. How can I get retina support to my Adobe Acrobat pro? It is version 10.1.13 and it says it is up to date.

    Hello, I have MacBook Pro with Retina display. How can I get retina support to my Adobe Acrobat pro? It is version 10.1.13 and it says it is up to date.

    Problem is that my pdf files look terrible although I have MacBook Pro (Retina, 15-inch, Mid 2014). I have Adobe Creative Suite Design  Standard version 6.0 (Mac). I have installed every possible update. I think problem is that for some reason my CS doesn´t support retina display? If I view a pdf file in iMessage, it looks fantastic. But if I open the same document in Adode Acrobat Pro, it looks awful. What can I do?
    Thank you so much for your help.
    Pekka
    Pekka Saatsi
    arkkitehti SAFA
    SAATSI arkkitehdit oy
    Bysmedsintie 56
    06500 Porvoo
    040 5955933
    [email protected]<mailto:[email protected]>
    www.arks.fi
    Anubha Goel <[email protected]<mailto:[email protected]>> kirjoitti 24.3.2015 kello 4.10:
    You have been mentioned
    by Anubha Goel<https://forums.adobe.com/people/Anubha+Goel?et=notification.mention> in Re: Hello, I have MacBook Pro with Retina display. How can I get retina support to my Adobe Acrobat pro? It is version 10.1.13 and it says it is up to date. in Adobe Community - View Anubha Goel's reference to you<https://forums.adobe.com/message/7335644?et=notification.mention#7335644>

  • I erased my 2012 MacBook Pro hard drive, what version OSX do I need to reload ?

    I erased my 2012 MacBook Pro hard drive, what version OSX do I need to reload ?

    Mac OS X 10.7.5 or newer, or see below. Press the Command and R keys at startup to load the recovery partition, or the Option, Command, and R keys to reinstall the computer's original OS.
    (106272)

  • How, and which abode flash player do you install in macbook pro : mac os x version 10.7.2

    How, and which abobe flashplayer do you use with Macbook pro : Mac os x version 10.7.2

    http://get.adobe.com/flashplayer/

  • Is there a version of Logic Pro X that can be installed on a Mac Book Pro with OS X Version 10.7.5 ?

    Is there a version of Logic Pro X that can be installed on a Mac Book Pro with OS X Version 10.7.5 ?

    No.. Logic Pro X requires 10.8.4 or later....
    To Purchase and install Mountain Lion these days.. you must buy a download content code from Apple directly... It is no longer available directly via the Mac App Store as an item you can select and buy...
    If you are in the US then this link will help you...
    http://store.apple.com/us/product/D6377Z/A/os-x-mountain-lion

  • Logic Pro 9 (9.0.0).   Message You can't use this version of the application Logic Pro 9 with this version of Mac OS X You have Logic Pro 9 9.0.0.   I have been told that I can use the Logic Pro 9.1.4 Update (.dmg) which you can download from Apple Logic

    Since upgrading to lion, I can't use Logic pro, hope someone can help.  thank you
    Logic Pro 9 (9.0.0).
    Message
    You can't use this version of the application Logic Pro 9 with this version of Mac OS X
    You have Logic Pro 9 9.0.0.
    I have been told that I can use the Logic Pro 9.1.8 Update (.dmg) which you can download from Apple Logic Support, although when I try to upgrade my I get this message:
    An eligible Logic Pro version was not found in the Applications folder. This update requires Logic Pro version 9.0 or higher.

    Since upgrading to lion, I can't use Logic pro, hope someone can help.  thank you
    Logic Pro 9 (9.0.0).
    Message
    You can't use this version of the application Logic Pro 9 with this version of Mac OS X
    You have Logic Pro 9 9.0.0.
    I have been told that I can use the Logic Pro 9.1.8 Update (.dmg) which you can download from Apple Logic Support, although when I try to upgrade my I get this message:
    An eligible Logic Pro version was not found in the Applications folder. This update requires Logic Pro version 9.0 or higher.

  • Ever since i updated software on my macbook pro, yahoo mail new version is constantly crashing with the spinning ball of death. any ideas?

    ever since i updated software on my macbook pro, yahoo mail new version is constantly crashing with the spinning ball of death. any ideas?

    What is the exact spec of the clips that cause the problem?
    (Open one of the files with QuickTime and press Cmd+i to open the Inspector - then report back with the what it says).
    Andy

Maybe you are looking for