Pro*C °³¿ä| Pro*C ±âÃÊ| º¯¼öÀÇ »ç¿ë | SQL¹® ±âº» | Dynamic SQLÀÇ »ç¿ë | SQLCA | ApplicationÀÇ ÀÛ¼º| ÄÄÆÄÀÏ

Pro*C ÄÄÆÄÀÏ

ÀÏ´Ü "sample.pc"·Î ¾îÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¥ÀÇ ÄÚµùÀÌ ³¡³µÀ¸¸é Pro*C  ÇÁ¸®ÄÄÆÄÀÏÀ» 
ÇØ¾ß ÇÑ´Ù.

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 È­ÀÏÀÇ ÁöÁ¤

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 ¿¡ Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù . ¸í·ÉÇà¿¡¼­ÀÇ »ç¿ëÀº ·Î »ç¿ëÇÏ°í °¢°¢ÀÇ ¿É¼Ç»çÀÌ´Â °ø¹éÀ¸·Î ±¸ºÐÇÑ´Ù . ¿¹¸¦ µé¾î ¶Ç ÀζóÀÎÀ¸·Î SOURCE ³»¿¡ »ðÀÔÇÏ¿© »ç¿ë°¡´ÉÇѵ¥ , À̶§´Â "EXEC ORACLE" À̶ó´Â ¹®±¸¸¦ »ç¿ëÇÏ¿© »ðÀÔÇÑ´Ù . ¿¹¸¦ µé¾î 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 ¸¦ ºÑ¿© Ãâ·ÂÇÑ´Ù .
  • 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 ¹®ÀÇ °Ë»ç¸¦ ¼³Á¤ÇÑ´Ù .
  • SYS_INCLUDE:½Ã½ºÅÛ Çì´õ È­ÀÏÀÇ µð·ºÅ丮¸¦ ¼³Á¤ÇÑ´Ù .
  • USERID:¿À¶óŬ USERID ¿Í PASSWORD ¸¦ ¸í½ÃÇÑ´Ù .

  • Pro*C °³¿ä| Pro*C ±âÃÊ| º¯¼öÀÇ »ç¿ë | SQL¹® ±âº» | Dynamic SQLÀÇ »ç¿ë | SQLCA | ApplicationÀÇ ÀÛ¼º| ÄÄÆÄÀÏ