Host Variables
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Host Variables

È£½ºÆ® º¯¼ö

È£½ºÆ® º¯¼ö´Â ¿À¶óŬ µ¥ÀÌÅͺ£À̽º¿Í È£½ºÆ®¿¡¼­ ½ÇÇàµÇ´Â ÇÁ·Î±×·¥°£ÀÇ Åë½ÅÀ» À§ÇÑ ÀÏÁ¾ÀÇ Åë·Î¶ó ÇÒ ¼ö ÀÖ´Ù.(¿À¶óŬ ¸Å´º¾óÀ» º¸¸é Key¶ó°í Á¤ÀÇ µÇ¾î ÀÖ´Ù.) »ç¿ëÀڴ ȣ½ºÆ® º¯¼ö¸¦ ÅëÇØ µ¥ÀÌÅͺ£À̽º¿¡ °ªÀ» Àü´Þ ÇÒ ¼öµµ ÀÖ°í µ¥ÀÌÅÍ¿¡À̽º·ÎºÎÅÍ °ªÀ» Àü´Þ ¹ÞÀ» ¼öµµ ÀÖ´Ù. È£½ºÆ® ÇÁ·Î±×·¥°ú µ¥ÀÌÅͺ£À̽º »çÀÌÀÇ ¸ðµç µ¥ÀÌÅÍ Àü´ÞÀº ÀÌ È£½ºÆ® º¯¼ö¸¦ ÀÌ¿ë¾ß¸¸ °¡´ÉÇÏ´Ù. È£½ºÆ® º¯¼öÀÇ »ç¿ëÀ» À§Çؼ­´Â Ưº°ÇÑ ¼±¾ð°ú »ç¿ë¹æ¹ýÀÌ ÇÊ¿äÇÏ´Ù. Â÷·Ê·Î »ìÆìº¸±â·Î ÇÏÀÚ.

È£½ºÆ® º¯¼öÀÇ Á¾·ù

¾Æ·¡ÀÇ Ç¥´Â Pro*C/C++¿¡¼­ »ç¿ëÇÒ ¼ö Àִ ȣ½ºÆ® º¯¼öÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» º¸¿©ÁØ´Ù.

  • Ç¥3 C Datatypes for Host Variables
C Datatype or Pseudotype Description
char ¹®ÀÚ µ¥ÀÌÅÍ Å¸ÀÔ
char[n] ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
int 4 byte Á¤¼ö µ¥ÀÌÅÍ Å¸ÀÔ
short 2 byte Á¤¼ö µ¥ÀÌÅÍ Å¸ÀÔ
long 4 byte Á¤¼ö µ¥ÀÌÅÍ Å¸ÀÔ
float 4 byte ½Ç¼ö µ¥ÀÌÅÍ Å¸ÀÔ
double 4 byte ½Ç¼ö µ¥ÀÌÅÍ Å¸ÀÔ
VARCHAR[n] °¡º¯ ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ(±¸Á¶Ã¼·Î Ç¥Çö)

´Ù¸¥ °ÍµéÀº ´Ù C¿¡¼­ Á¸ÀçÇÏ´Â Áï ¸¹ÀÌ ºÁ ¿Ô°í ¸¹ÀÌ »ç¿ëÇÑ µ¥ÀÌŸ ŸÀÔÀÌÁö¸¸ ƯÀÌÇÏ°Ô VARCHAR[n]À̶õ°Ô ÀÖ´Ù. À̰ÍÀº ½ÇÁ¦·Î Á¸Á¦ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ±¸Á¶Ã¼·Î Á¤ÀÇ µÇ¾îÀÖ°í Pro*C/C++·Î ÇÁ¸®ÄÄÆÄÀÏ ÇÒ ¶§ Ç®¸®µµ·Ï µÇ¾îÀÖ´Ù. Áï

VARCHAR str10; À̶ó°í ¼±¾ðµÈ °ÍÀº
struct 
{ 
    unsigned char arr[10]; 
    unsigned short len; 
} str; 
 
À¸·Î Ç®¾î¼­ ¾²°Ô µÇ¾î ÀÖ´Ù. Á¤È®È÷ ¸»ÇÏ¸é ½ÇÁ¦ µ¥ÀÌÅÍ Å¸ÀÔÀ̶ó±â º¸´Ü ½´µµÅ¸ÀÔÀÌ´Ù.

¾Æ·¡ÀÇ Ç¥´Â È£½ºÆ® º¯¼ö¿Í ¿À¶óŬ µ¥ÀÌÅÍ Å¸ÀÔ°£ÀÇ È£È¯¼ºÀ» º¸¿©ÁØ´Ù.

  • Ç¥4 C¿Í ¿À¶óŬ µ¥ÀÌÅÍ Å¸ÀÔ°£ÀÇ È£È¯¼º
Internal Type C Type
Description VARCHAR2(Y)
Char ´ÜÀÏ ¹®ÀÚ µ¥ÀÌÅÍ Å¸ÀÔ
Varchar[n] °¡º¯±æÀÌ ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
Int 4 byte Á¤¼ö µ¥ÀÌÅÍ Å¸ÀÔ
float 4 byte ½Ç¼ö µ¥ÀÌÅÍ Å¸ÀÔ
CHAR(X) Char[n] ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
Varchar[n] °¡º¯±æÀÌ ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
Int 4 byte Á¤¼ö µ¥ÀÌÅÍ Å¸ÀÔ
float 4 byte ½Ç¼ö µ¥ÀÌÅÍ Å¸ÀÔ
NUMBER(P,S) Int 4 byte Á¤¼ö µ¥ÀÌÅÍ Å¸ÀÔ
Float 4 byte ½Ç¼ö µ¥ÀÌÅÍ Å¸ÀÔ
Char[n] ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
Varchar[n] °¡º¯±æÀÌ ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
DATE |
Char[n] ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
Varchar[n] °¡º¯±æÀÌ ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
LONG
Char[n] ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
Varchar[n] °¡º¯±æÀÌ ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
RAW(X)
Unsigned Char[n] ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
Varchar[n] °¡º¯±æÀÌ ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
LONG RAW
Unsigned Char[n] ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
Varchar[n] °¡º¯±æÀÌ ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
ROWID
Unsigned Char[n] ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
Varchar[n] °¡º¯±æÀÌ ¹®ÀÚ¿­ µ¥ÀÌÅÍ Å¸ÀÔ
À§¿¡¼­ º¸´Â ¹Ù¿Í °°ÀÌ Internal TypeÀÌ ¹®ÀÚ¿­ À̶ó°í ÇØ¼­ C DatabypeÀÌ Int, long, floatµîÀ¸·Î µ¥ÀÌÅ͸¦ ¹ÞÀ» ¼ö ¾ø´Â °ÍÀº ¾Æ´Ï´Ù. µé¾î ÀÖ´Â µ¥ÀÌÅͰ¡ C Datatype¿¡ ¸Â±â¸¸ ÇÑ´Ù¸é ÃæºÐÈ÷ ¹ÞÀ» ¼ö ÀÖÀ¸¸ç C DatatypeÀÌ ¹®ÀÚ¿­ÀÏ °æ¿ì¿¡´Â °ÅÀÇ ´ëºÎºÐÀÇ µ¥ÀÌÅ͸¦ ¹ÞÀ» ¼ö ÀÖ´Ù°í º¸¸é µÈ´Ù.

±× ¿Ü¿¡ ƯÀÌ»çÇ×À¸·Î 1Â÷¿ø ¹è¿­ÀÇ °æ¿ì È£½ºÆ® º¯¼ö·Î »ç¿ë°¡´ÉÇÏ´Ù. ±×·¯³ª 2Â÷¿ø ¹è¿­ÀÇ °æ¿ì char[m][n]¿Í varchar[m][n]¸¸ÀÌ »ç¿ë °¡´ÉÇÏ´Ù. Æ÷ÀÎÅÍÀÇ °æ¿ì´Â °¡´ÉÇÏÁö¸¸ Æ÷ÀÎÅÍ ¹è¿­ÀÇ °æ¿ì Áö¿øÇÏÁö ¾Ê´Â´Ù.

È£½ºÆ® º¯¼öÀÇ »ç¿ë

È£½ºÆ® º¯¼öÀÇ »ç¿ë¿¡ À־ ¸î °¡Áö Á¦¾àÁ¡ÀÌ ÀÖ´Ù. ù ¹øÂ°´Â º¯¼ö¸¦ ¼±¾ð ÇÒ °æ¿ì ¹Ýµå½Ã Á¤ÇØÁø ¿ª¿µ¾È¿¡¼­¸¸ ÇØ¾ß ÇÑ´Ù. SQL¹®Àå ³»¿¡¼­ »ç¿ëÇÒ °æ¿ì¿¡´Â ¹Ýµå½Ã º¯¼ö À̸§ ¾Õ¿¡ ¡®:¡¯À» ºÙ¿©Áà¾ß¸¸ ÇÑ´Ù. À̰ÍÀº SQL ¶Ç´Â PL/SQL ¹®Àå¾È¿¡¼­ Á¤ÀÇµÈ Ä®·³, Å×À̺í, ÇÁ·Î½ÃÀúµîÀÇ À̸§°ú È¥µ¿µÇÁö ¾Èµµ·Ï Çϱâ À§ÇÔÀÌ´Ù.

¾Æ·¡¿¡ È£½ºÆ® º¯¼öÀÇ ¼±¾ðÀ» º¸¿©ÁÖ´Â ¿¹¸¦ º¸¿©ÁØ´Ù.

/* È£½ºÆ® º¯¼öÀÇ ¼±¾ð ½ÃÀÛ */ 
EXEC SQL BEGIN DECLARE SECTION;  
    int empno;              /* emp Å×À̺íÀÇ empno¸¦ ¹ÞÀ» º¯¼ö */ 
    char ename[10];         /* emp Å×À̺íÀÇ enameÀ» ¹ÞÀ» º¯¼ö */ 
    float sal;              /* emp Å×À̺íÀÇ sal  À» ¹ÞÀ» º¯¼ö */ 
    float comm;             /* emp Å×À̺íÀÇ comm À» ¹ÞÀ» º¯¼ö */ 
EXEC SQL EBD DECLARE SECTION;  
/* È£½ºÆ® º¯¼öÀÇ ¼±¾ð Á¾·á */ 
 
/* ÇÁ·Î±×·¥¿¡¼­ »ç¿ëµÉ ÀÏ¹Ý º¯¼ö */ 
Int nCols, nRows, count; 
 
¾Æ·¡¿¡ È£½ºÆ® º¯¼öÀÇ »ç¿ëÀ» º¸¿©ÁÖ´Â ¿¹¸¦ º¸ÀÚ. 
 
/* 
 * »ç¿ø¹øÈ£¸¦ ¾ò¾î¿Í¼­ ÇØ´çÇÏ´Â »ç¶÷ÀÇ À̸§°ú ±Þ¿©, »ó¿©¸¦ ¹Þ¾Æ¿Â´Ù. 
 */ 
empno = atoi (gets ()); 
EXEC SQL 
SELECT ename, sal, comm 
INTO :ename, :sal, :comm 
FROM emp 
WHERE empno = :empno; 
 
/* 
 * ¾ò¾î¿Â ±Þ¿©¿Í »ó¿©¸¦ ¼öÁ¤ÇÏ¿© ´Ù½Ã ¾÷µ¥ÀÌÆ® ÇÑ´Ù. 
 */ 
sal = sal + 3000; 
comm = comm + 1000; 
EXEC SQL 
    UPDATE emp 
    SET sal = :sal, comm = :comm. 
    WHERE empno = :empno; 
 


À§ÀÇ ¿¹Á¦¿¡¼­ È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇϱâ À§Çؼ­ º¯¼ö À̸§ ¾Õ¿¡ ÄÝ·ÐÀ» ºÙ¿©Áشٴ °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.

À§¿¡¼­ º» µ¥ÀÌÅÍ Å¸ÀÔµé·Î È£½ºÆ® º¯¼ö¸¦ ¸¸µé¼ö ÀÖÁö¸¸ ±× À̿ܿ¡µµ SQL Ä¿¼­, ±¸Á¶Ã¼, Æ÷ÀÎÅ͵ È£½ºÆ® º¯¼öµé·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÚ¼¼ÇÑ ºÎºÐÀº ¾ÕÀ¸·Î ÇϳªÇϳªÀÇ °úÁ¤À» °ÅÄ¡¸é¼­ ¿¹Á¦·Î º¸µµ·Ï ÇϰڴÙ.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.