6.ÄÄÆÄÀÏ
Pro*C ÄÄÆÄÀÏ
ÀÏ´Ü "sample.pc"·Î ¾îÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¥ÀÇ ÄÚµùÀÌ ³¡³µÀ¸¸é Pro*C ÇÁ¸®ÄÄÆÄÀÏÀ»
ÇØ¾ß ÇÑ´Ù.
proc INAME=sample1.pc
proc sample1.pc
proc¿¡¼ »ç¿ëµÇ´Â ÇÁ¸®ÄÄÆÄÀÏ·¯ ¿É¼ÇµéÀÇ Default °ªµéÀº ÇÁ¸®ÄÄÆÄÀÏ·¯ ³»¿¡ Æ÷ÇԵǾî
ÀÖ°í, Pro*C System Configuration file¿¡ ÀÖ°í, ¶Ç user configuration fileÀ» ÀÛ¼ºÇÏ¿©
ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.
¿¹¸¦ µé¾î MAXOPENCURSORS¶ó´Â ¿É¼ÇÀº ÇÁ¸®ÄÄÆÄÀÏ·¯ ³»¿¡ 10À¸·Î µÇ¾îÀִµ¥, system
ȯ°æÈÀÏ¿¡ MAXOPENCURSORS=32¶ó°í Çϸé Default°ªÀº 32°¡ µÇ´Â °ÍÀÌ´Ù .
¶Ç user°¡ Á¤ÀÇÇÑ È¯°æÈÀÏÀ» ÁöÁ¤ÇØ ÁÖ¸é Default °ªÀº ±× °ªÀ¸·Î º¯°æµÈ´Ù .
system configuration file ½Ã½ºÅÛ ¸¶´Ù ´Ù¸£Áö¸¸ $ORACLE_HOME/proc/pmscfg.h
¿À¶óŬ7.3.X ¹öÁ¯¿¡¼´Â $ORACLE_HOME/ precomp/admin µð·ºÅ丮¿¡ À§Ä¡ÇÑ´Ù .
config ÈÀÏÀÇ ÁöÁ¤
$proc config=my_config_file.h ...
Default ¿É¼ÇÀ» º¸·Á¸é
ÇÏ¸é µÈ´Ù .
config ÈÀÏÀÇ »ý¼º
config ÈÀÏÀº °¢ ¶óÀθ¶´Ù ÇϳªÀÇ ¿É¼Ç°ú °ªÀ» ÁÖ¸é µÈ´Ù .
make À¯Æ¿¸®Æ¼ :
"makefile" À̶ó´Â Ư¼öÇÑ Çü½Ä¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÀÏ·ÃÀÇ ÀÇÁ¸±ÔÄ¢µé¿¡ ±Ù°ÅÇÏ¿© ÈÀÏÀ»
ÃֽŠ¹öÀüÀ¸·Î °³Á¤ÇÏ´Â À¯Æ¿¸®Æ¼ÀÌ´Ù .
-f ¿É¼ÇÀº ¸¸µé°íÀÚ ÇÏ´Â ÈÀÏ À̸§À» ¸í½ÃÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù .
¸¸ÀÏ À̸§ÀÌ ¸í½ÃµÇÁö ¾ÊÀ¸¸é , "makefile" ·Î °£ÁÖÇÑ´Ù .
Pro*C ÀÇ makefile Àº $ORACLE_HOEM/precom/demo/proc ¿¡ Á¸ÀçÇÏ´Â proc.mk ¸¦ ÀÚ½ÅÀÇ
ÀÛ¾÷ µð·ºÅ丮¿¡ copy ÇÏ¿© º¯°æÇÏ¿© ÀÛ¼ºÇÏ¸é µÈ´Ù .
proc.mk ÈÀÏÀº Pro*C ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÏ¿© ½ÇÇàÈÀÏÀ» »ý¼ºÇÏ´Â ÀÏ·ÃÀÇ ÀÛ¾÷µéÀ»
±â¼úÇØ ³õÀº °ÍÀÌ´Ù .
À§ÀÇ ¸í·ÉÀº proc.mk ¶ó´Â makefile À» ÀÌ¿ëÇÏ¿© makefile ¾È¿¡ ÀÖ´Â sample1 À̶õ
lable ÀÇ ±¸¼º´ë·Î ½ÇÇàÇÑ´Ù .
sample1 À̶ó´Â lable ¿¡´Â proc ¸¦ ±¸µ¿½ÃÅ°°í , cc ¸¦ ±¸µ¿½ÃÅ°´Â ºÎºÐÀ» Á¤ÀÇÇÑ´Ù .
Precompiler Options
¹®¹ý |
default |
¼³¸í |
AUTO_CONNECT |
NO |
ÀÚµ¿ OPS$ ·Î±×ÀÎ |
CODE=ANSI_C|KR_C|CPP |
KR_C |
»ý¼º C ÄÚµå ŸÀÔ |
CONFIG=<filename> |
NO |
»ç¿ëÀÚÁ¤ÀÇ cinfig ÈÀÏ |
CPP_SUFFIX |
NO |
output ÈÀÏÀÇ È®ÀåÀÚ Á¤ÀÇ |
DBMS-V6|V7|NATIVE|V6_CHAR |
NATIVE |
µ¥ÀÌŸº£À̽º ¹öÁ¯°£ÀÇ È£È¯¼º Á¤ÀÇ |
DEFINE=<name> |
NO |
Pro*C ÇÁ¸®ÇÁ·Î¼¼¼¿¡¼ »ç¿ëµÉ À̸§ Á¤ÀÇ |
DEF_SQLCODE |
NO |
#define SQLCODE ¸¦ »ý¼º |
ERROR=YES|NO |
YES |
¿¡·¯¸Þ¼¼Áö Ãâ·ÂÇÒ À§Ä¡ÁöÁ¤
YES: stdout, NO: list ÈÀÏ |
FIPS=NONE|SQL89|SQL2 |
NONE |
whether to flag ANSI/ISO non-compliance |
HOLD_CURSOR=YES|NO |
NO |
Ä¿¼ cache ¸¦ sql ¹®À¸·Î Çڵ鸵ÇÑ´Ù |
INAME=<filename> |
NO |
ÀÔ·ÂÈÀÏ À̸§ |
INCLUDE=<pathname> |
NO |
EXEC SQL INCLUDE ³ª #include ¹®ÀåÀ» À§ÇÑ µð·ºÅ丮 path ÁöÁ¤ |
LINES=YES|NO |
NO |
whether #line directives are generated |
LNAME=<filename> |
none |
¸®½ºÆ®ÈÀϸí |
=10..1024 |
1024 |
string literals ÀÇ ÃÖ´ë±æÀÌ |
MAXOPENCURSOR=5..255 |
10 |
ÃÖ´ëÄ¿¼ °¹¼ö |
ONAME=<filename> |
none |
output ÈÀϸí |
ORACA=YES|NO |
NO |
ORACA ÀÇ »ç¿ë¿©ºÎ |
RELEASE_CURSOR |
NO |
Ä¿¼Ä³½¬¿¡¼ Ä¿¼¸¦ Á¦¾î |
SELECT_ERROR |
YES |
SELECT ¿¡·¯¸¦ FLAG |
SQLCHECK |
SYNTAX |
ÄÄÆÄÀϽà SQL CHECK |
SYS_INCLUDE |
none |
½Ã½ºÅÛ Çì´õÈÀÏÀÇ µð·ºÅ丮 ¼³Á¤ |
USERID |
NO |
USERNAME/PASSWORD ÁöÁ¤ |
- ÇÁ¸®ÄÄÆÄÀÏ ¿É¼ÇÀÇ ¿µÇâ ¹üÀ§
À§ÀÇ ¿É¼ÇµéÀº ÇϳªÀÇ C ¼Ò½º ÇÁ·Î±×·¥¿¡¼¸¸ À¯È¿ÇÏ´Ù . ¸¸¾à A ¶ó´Â UNIT ¿¡ ÇÁ¸®ÄÄÆÄÀÏ·¯
¿É¼ÇÀÎ HOLD_SURDOR=YES ±×¸®°í RELEASE_CURSOR=YES °¡ Á¤ÀǵǾî ÀÖ°í , B UNIT ¿¡´Â ¾ø´Ù¸é
A ´Â ¿É¼ÇÀÇ ¿µÇâÀ» ¹Þ°í B ´Â DEFAulT °ªÀÇ ¿µÇâÀ» ¹Þ´Â´Ù .
ÇÁ¸®ÄÄÆÄÀÏ ¿É¼ÇÀÇ »ç¿ë
ÇÁ¸®ÄÄÆÄÀÏ ¿É¼ÇÀº ¸í·ÉÇà¿¡¼µµ »ç¿ë°¡´ÉÇÏ°í ¶Ç SOURCE ¿¡ Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù .
¸í·ÉÇà¿¡¼ÀÇ »ç¿ëÀº
[OPTION_NAME=value] [OPTION_NAME=value] ...
·Î »ç¿ëÇÏ°í °¢°¢ÀÇ ¿É¼Ç»çÀÌ´Â °ø¹éÀ¸·Î ±¸ºÐÇÑ´Ù . ¿¹¸¦ µé¾î
¶Ç ÀζóÀÎÀ¸·Î SOURCE ³»¿¡ »ðÀÔÇÏ¿© »ç¿ë°¡´ÉÇѵ¥ , À̶§´Â "EXEC ORACLE" À̶ó´Â ¹®±¸¸¦
»ç¿ëÇÏ¿© »ðÀÔÇÑ´Ù .
EXEC ORACLE OPTION (OPTION_NAME=value);
¿¹¸¦ µé¾î
EXEC ORACLE OPTION (RELEASE_CURSOR=yes);
SOURCE ÆÄÀÏ¿¡ Æ÷ÇԵǾîÁø ¿É¼Çµéµµ ¸í·ÉÇàÀ̳ª CONFIGURATION ÈÀÏ¿¡ Áߺ¹ÇÏ¿© »ç¿ëÇÒ
¼ö ÀÖ´Ù .
ÀÌ "EXEC ORACLE" ±¸¹®Àº ƯÈ÷ ÇÁ¸®ÄÄÆÄÀÏ µµÁß¿¡ ¿É¼ÇÀ» º¯°æÇÒ ¶§ À¯¿ëÇÏ´Ù .
EXEC ORACLE ÀÇ À¯È¿¹üÀ§´Â SOURCE ÈÀϳ»¿¡ °°Àº ¿É¼ÇÀ¸·Î EXEC ORACLE ÀÌ »ç¿ëµÈ ÀÌÀü±îÁö
À¯È¿ÇÏ´Ù .
¡¡
AUTO_CONNECT: ÀÚµ¿À¸·Î OPS$ °èÁ¤À¸·Î connect ÇÑ´Ù .
YES ÀÌ¸é ¾îÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¥ÀÌ Ã¹ SQL ¹®ÀåÀ» ½ÇÇàÇÒ ½ÃÁ¡¿¡¼ OPT$ °èÁ¤À¸·Î CONNECT¸¦
½ÃµµÇÑ´Ù .
NO À̸é ÀÚµ¿ CONNECT ´Â µÇÁö ¾Ê°í SOURCE ÈÀϳ»¿¡ CONNECT ¹®ÀåÀÌ Á¸ÀçÇØ¾ß ÇÑ´Ù .
CODE : C ÇÔ¼öÀÇ ¾î¶² ÇÁ·ÎÅäŸÀÔÀ» »ý¼º½ÃÅ°´Â Áö Á¤ÇÑ´Ù .
ANSI_C ´Â X3.159-1989 ¿¡¼ Á¦°øÇÑ Ç¥ÁØÀ» Á¦°øÇÑ´Ù . ANSI_C Ç¥ÁØÀ¸·Î »ý¼ºÇÑ´Ù .
extern void(sqlora(long *, void *);
CODE=KR_C À̸é
extern void sqlora(/*_ long *, void * */);
CODE=CPP À̸é C++ ¿¡ ¸Â´Â SOURCE CODE ¸¦ »ý¼º½ÃŲ´Ù .
CONFIG : »ç¿ëÀÚ ÁöÁ¤ CONFIGURATION ÈÀÏÀ» ÁöÁ¤ÇÑ´Ù .
°¢ ¶óÀθ¶´Ù ÇÑ°³ÀÇ ¿É¼ÇÀÌ µé¾î°¡°Ô ÈÀÏÀ» »ý¼ºÇØ À̸§À» ÁöÁ¤ÇÑ´Ù .
CPP_SUFFIX: C++ ¿É¼ÇÀ¸·Î SOURCE ÈÀÏÀÇ È®ÀåÀÚ¸¦ ÁöÁ¤ÇÑ´Ù .
DBMS : ¹®¹ýÀ» Á¤ÀÇÇÑ´Ù .
NATIVE : Á¢¼ÓµÇ´Â µ¥ÀÌŸ º£À̽º¿¡ SETTING µÈ Å×ÀÌºí¿¡ µû¸¥´Ù .
DEF_SQLCODE:#define SQLCODE sqlca.sqlcode
DEFINE : ÇÁ¸®ÇÁ·Î¼¼¼ÀÇ ¸ÅÅ©·Î¸¦ ÄÄÆÄÀÏ ½ÃÁ¡¿¡¼ ¼±¾ðÇÑ´Ù .
SOURCE ÈÀÏ¿¡ ¾Æ·¡¿Í °°ÀÌ Á¤ÀÇ µÇ¾î ÀÖ´Ù¸é
#ifdef XYZZY
....
#else
...
#endif
proc my_prog DEFINE=XYZZY
·Î ÇÁ¸®ÄÄÆÄÀÏÇϸé
#define XYZZY ¸¦ SOURCE ¿¡ Æ÷ÇÔ½ÃŲ°Í°ú °°´Ù .
EXEC ORACLE IFDEF XYZZY;
...
EXEC ORACLE ELSE;
...
EXEC ORACLE ENDIF;
µµ °°Àº È¿°ú¸¦ ³ªÅ¸³½´Ù .
ERRORS: ¿¡·¯¸¦ Å͹̳ηΠº¸³¾ °ÍÀÎÁö (NO), ¸®½ºÆ® ÈÀÏ·Î º¸³¾ °ÇÁö¸¦ (YES) °áÁ¤
HOLD_CURSOR : SQL ¹®À̳ª PL/SQL ºí·°À» Ä¿¼ ij½¬¾È¿¡¼ º¸°ü½Ãų °ÇÁö¸¦ °áÁ¤ÇÑ´Ù .
INAME: SOURCE ÈÀϸíÀ» ¸í½ÃÇÑ´Ù .
proc sample MODE=ANSI
proc INAME=sample1 MODE=ANSI
INCLUDE : ÄÄÆÄÀϽà Æ÷ÇԵǾîÁ®¾ß ÇÒ ÈÀÏÀÇ µð·ºÅ丮¸íÀ» ¸í½ÃÇÑ´Ù .
#include ³ª EXEC SQL INCLUDE ¹®¿¡¼ ¸í½ÃµÈ ÈÀϵéÀÌ À§Ä¡ÇÑ °÷À» ¸í½ÃÇÑ´Ù .
ÄÄÆÄÀϽà Çì´õ ÈÀÏÀ» ã´Â ¼ø¼´Â
1. SYS_INCLUDE ·Î ÁöÁ¤µÇ¾îÁø µð·ºÅ丮
2. ÇöÀç µð·ºÅ丮
3. standard Çì´õ ÈÀÏÀÇ µð·ºÅ丮
4. INCLUDE ¿É¼ÇÀ¸·Î ÁöÁ¤µÈ µð·ºÅ丮
IRECLEN : SOURCE ÈÀÏÀÇ ÇÑ ¶óÀÎÀÇ ±æÀ̸¦ Á¤ÇÑ´Ù .
default ·Î 80 À¸·Î ÁöÁ¤µÇ¾î ÀÖ´Ù .
LNAME:¸®½ºÆ® ÈÀÏÀÇ À̸§À» ¸í½ÃÇÑ´Ù .
LRECLEN:¸®½ºÆ® ÈÀÏÀÇ ÇÑ ¶óÀÎÀÇ ±æÀ̸¦ ³ªÅ¸³½´Ù .( ±âº»°ª :132)
LTYPE:»ý¼ºµÉ ¸®½ºÆ® ÈÀÏÀÇ Å¸ÀÔÀ» ¼³Á¤ÇÑ´Ù .( ±âº»°ª:LONG)
MAXLITERAL (8~1024) »çÀÌÀÇ °ªÀ¸·Î ¹®ÀÚ LITERAL ÀÇ ÃÖ´ë±æÀ̸¦ ¼³Á¤ÇÑ´Ù .
( ±âº»°ª 1024)
MAXOPENCURSORS:µ¿½Ã¿¡ OPEN ÇÒ ¼ö ÀÖ´Â ÃÖ´ë Ä¿¼ÀÇ °¹¼ö¸¦ ¼³Á¤ÇÑ´Ù .
(5~255) ±âº»°ª:10
ONAME:OUTPUT ÈÀϸíÀ» ¸í½ÃÇÑ´Ù .
±âº»ÀûÀ¸·Î INAME ÀÇ µÚ¿¡ CPP_SUFFIX ¸¦ ºÑ¿© Ãâ·ÂÇÑ´Ù .
proc iname=my_test
proc iname=my_test oname=my_test_1.c
ORACA:ORACA ÀÇ »ç¿ë¿©ºÎ¸¦ ¼³Á¤ÇÑ´Ù .
ORACA=YES ¸é SOURCE ÇÁ·Î±×·¥³»¿¡ EXEC SQL INCLUDE ORACA.H ³ª #include oraca.h ¸¦ Æ÷ÇÔÇؾ߸¸ ÇÑ´Ù .
ORECLEN:OUTPUT ÈÀÏÀÇ ÇÑ ¶óÀÎÀÇ ±æÀ̸¦ ¼³Á¤ ( ±âº»°ª 80), (80~255)
PAGELEN:¸®½ºÆ®ÈÀÏÀÇ PAGE ±æÀ̸¦ ¼³Á¤ ( ±âº»°ª ¾øÀ½ )(30~255)
RELEASE CURSOR:Ä¿¼ÀÇ º¸°üÀ» Ãë¼ÒÇÑ´Ù .
SQLCHECK:SQL ¹®ÀÇ °Ë»ç¸¦ ¼³Á¤ÇÑ´Ù .
SQLCHECK=SEMANTICS
µ¥ÀÌŸÁ¶ÀÛ¹® , PL/SQL ºí·° , È£½ºÆ®º¯¼öÀÇ µ¥ÀÌŸ ŸÀÔÀ» °Ë»ç
SQLCHECK=FULL
SQL ¹®Àå ¹× µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇØ ÇöÀçÀÇ SQL ¹®ÀåÀÇ À¯È¿¼ºÀ» °Ë»çÇÑ´Ù .
USERID °¡ Á¤ÀǵǾî ÀÖ¾î¾ß ÇÑ´Ù .
SQLCHECK=SYNTAX
SQL ¹®ÀåÀÇ ¹®¹ýÀûÀÎ ¿À·ù¸¸ °Ë»ç
SQLCHECK=SYMANTICS
PL/SQL ºí·°ÀÌ SOURCE ³»¿¡ Æ÷ÇԵǾî ÀÖÀ¸¸é USERID ¿Í ÇÔ²² ÀÌ ¿É¼ÇÀ» ½á¾ß ÇÑ´Ù .
SYS_INCLUDE:½Ã½ºÅÛ Çì´õ ÈÀÏÀÇ µð·ºÅ丮¸¦ ¼³Á¤ÇÑ´Ù .
USERID:¿À¶óŬ USERID ¿Í PASSWORD ¸¦ ¸í½ÃÇÑ´Ù .