ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. Array Processing
Ä¿¼¸¦ »ç¿ëÇÑ ÇÁ·Î±×·¥À» º»´Ù¸é ¾ÆÁÖ Àß µÈ ÇÁ·Î±×·¥ °°¾Æ º¸ÀδÙ. ½ÇÁ¦·Îµµ ¾ÆÁÖ ÈǸ¢ÇÏ°Ô µ¿ÀÛÇÏ°í º° ¹«¸® ¾øÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ±×·¯³ª ¿©±â¿¡µµ ÇѰ¡Áö ¹®Á¦Á¡ÀÌ ÀÖ´Ù. ¹Ù·Î ³×Æ®¿÷ Æ®·¹ÇÈÀ» Àâ¾Æ ¸Ô°í ±×¿¡ µû¸¥ ½Ã°£ÀÌ ¸¹ÀÌ °É¸°´Ù´Â °ÍÀÌ´Ù. À̰ÍÀº ¾î¶»°Ô º»´Ù¸é º° ¹®Á¦°¡ ¾Æ´Ñ°Å °°Áö¸¸ ÆÐÄ¡ÇÒ ÇàÀÌ ¾Æ~~~ ÁÖ ¸¹Àº °æ¿ì¿¡´Â ÇÁ·Î±×·¥ ¼º´É¸é¿¡¼ »ó´çÇÑ ¹®Á¦¸¦ ÀÏÀ¸Å²´Ù. ¹Ù·Î Àüü Å©±â°¡ °°´õ¶óµµ Å« ÆÄÀÏ Çϳª¸¦ º¹»çÇÏ´Â °Í º¸´Ù ¼ö¸¹Àº ÀÛÀº ÆÄÀϵéÀ» º¹»çÇÏ´Â °ÍÀÌ ´õ ¿À·¡°É¸®´Â °Í°ú °°Àº ÀÌÀ¯ÀÏ °ÍÀÌ´Ù. ÀÌ·± ¹®Á¦¸¦ ÇØ°á ÇÒ¼ö ÀÖ´Â °¡Àå ÈǸ¢ÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ÀÌ ¹Ù·Î Array ProcessingÀÌ´Ù. À̸§À» ºÁ¼µµ ¾Ë ¼ö ÀÖµíÀÌ Çѹø¿¡ ÇÑ ÇàÀ» ÆÐÄ¡ ÇØ ¿À´Â °ÍÀÌ ¾Æ´Ï¶ó Çѹø¿¡ ¿©·¯ ÇàÀ» ÆÐÄ¡ÇØ ¿À´Â °ÍÀÌ´Ù. ¿¹Á¦¸¦ ÅëÇØ¼ ÀÚ¼¼È÷ º¸µµ·Ï ÇÏÀÚ. /* --------------------------------------------------------------------------------
ÆÄÀÏ À̸§ : array_select.pc
°³¹ß ÀÏÀÚ : 2002-10-28
ÀÛ¼ºÀÚ : ·ù¸íȯ
-------------------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
/*
* $ORACLE_HOME/precomp/public/sqlca.h ¸¦ Æ÷ÇÔÇØ ÁÖ±â À§Çؼ
*/
exec sql include sqlca;
/*
* È£½ºÆ® º¯¼ö ¼±¾ð
*/
exec sql begin declare section;
/*
* »ç¿ëÀÚ ID¿Í ÆÐ½º¿öµå
*/
char *username;
char *password;
/*
* emp Å×À̺íÀÇ Ä®·³ ¸®½ºÆ®
* ¹Þ¾Æ¿Ã Å×À̺íÀÇ ÇàÀÇ ¼ö¸¸Å ¹è¿À» ¼³Á¤ÇÑ´Ù.
*/
int empno [14];
int mgr [14];
int sal [14];
int comm [14];
int deptno [14];
char ename [14][11];
char job [14][10];
char hiredate [14][10];
/*
* emp Å×À̺í Ä®·³µéÀÇ Indicator º¯¼ö
* ¹Þ¾Æ¿Ã Å×À̺íÀÇ ÇàÀÇ ¼ö¸¸Å ¹è¿À» ¼³Á¤ÇÑ´Ù.
*/
short ind_empno [14];
short ind_mgr [14];
short ind_sal [14];
short ind_comm [14];
short ind_deptno [14];
short ind_ename [14];
short ind_job [14];
short ind_hiredate [14];
exec sql end declare section;
/*
* SQL ¿¡·¯ ¹ß»ý½Ã ½ÇÇàÇÒ ÇÔ¼ö
* ¿¡·¯Äڵ带 ÇÁ¸°Æ® ÇÏ°í ·Ñ¹é ÈÄ¿¡ Á¢¼ÓÀ» Á¾·áÇÑ´Ù.
* sqlca·Î ¿¡·¯ °Ë»ç.
*/
void sql_error (void)
{
printf ("SQL Error Code : %d\n", sqlca.sqlcode);
printf ("SQL Error Message : %s\n", sqlca.sqlerrm.sqlerrmc);
exec sql whenever sqlerror continue;
exec sql rollback work release;
exit (EXIT_FAILURE);
}
int main (void)
{
int i = 0;
char buf [256] = {'\0', };
username = (char *)strdup ("scott");
password = (char *)strdup ("tiger");
/*
* scott »ç¿ëÀÚ °èÁ¤À¸·Î Á¢¼Ó ½Ãµµ
* Á¢¼Ó ½Ãµµ ÈÄ¿¡ ¼º°ø ¿©ºÎ¸¦ À§ÇØ ¿¡·¯¸¦ °Ë»çÇÑ´Ù.
* sqlca·Î ¿¡·¯ °Ë»ç.
*/
exec sql
connect :username identified by :password;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Connected to Oracle Database\n");
/*
* ÇØ´ç »ç¿øÀÇ »ç¿ø Á¤º¸¸¦ °¡Á®¿Â´Ù.
* Indicator º¯¼ö¸¦ ºÙ¿©¼ NULLÀÌ ÀÖ´ÂÁö °Ë»çÇÑ´Ù.
* À̶§ È£½ºÆ® º¯¼öµéÀÌ ÀüºÎ ¹è¿·Î ÁöÁ¤ µÇ¸é ±× ¹è¿ÀÇ ¼ö¸¸Å ÀÚµ¿À¸·Î °¡Á®¿Â´Ù.
* ÇѹøÀÇ SQL¹® ½ÇÇàÀ¸·Î 14°³ÀÇ ÇàÀ» ¸ðµÎ °¡Á®¿Â´Ù.
* sqlca¸¦ ÅëÇØ¼ ¿¡·¯¸¦ °Ë»çÇÑ´Ù.
*/
exec sql
select empno, ename, job, mgr, hiredate, sal, comm, deptno
into :empno:ind_empno, :ename:ind_ename, :job:ind_job, :mgr:ind_mgr,
:hiredate:ind_hiredate, :sal:ind_sal, :comm:ind_comm, :deptno:ind_deptno
from emp;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
/*
* Ä®·³ÀÇ À̸§À» ÇÁ¸°Æ® ÇÏ°í ÆÐÄ¡ÇÑ ÇàÀÇ ¼ö¸¸Å µ¹·Á¼ ÇÁ¸°Æ®ÇÑ´Ù.
*/
printf ("EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO\n");
for (i = 0; i < 14; i ++)
{
/*
* Indicator º¯¼ö¸¦ °Ë»çÇÏ¿© -1 ÀÎ °æ¿ì´Â ½ÇÁ¦ µ¥ÀÌÅͰ¡ NULL ÀÎ
* °æ¿ì À̹ǷΠ¼ýÀÚÀÎ °æ¿ì -1À» ¹®ÀÚÀÎ °æ¿ì NULLÀ» Âï¾î ÁØ´Ù.
*/
printf ("%5d %10s %9s %4d %9s %7d %7d %2d\n",
(ind_empno [i] == -1) ? -1 : empno [i],
(ind_ename [i] == -1) ? "NULL" : ename [i],
(ind_job [i] == -1) ? "NULL" : job [i],
(ind_mgr [i] == -1) ? -1 : mgr [i],
(ind_hiredate [i] == -1) ? "NULL" : hiredate [i],
(ind_sal [i] == -1) ? -1 : sal [i],
(ind_comm [i] == -1) ? -1 : comm [i],
(ind_deptno [i] == -1) ? -1 : deptno [i]);
}
/*
* µ¥ÀÌÅͺ£À̽º¿Í Á¢¼ÓÀ» Á¾·áÇÑ´Ù.
* sqlca ·Î ¿¡·¯ °Ë»ç.
*/
exec sql
rollback work release;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Disconnect from Oracle Database\n");
exit (EXIT_SUCCESS);
}
óÀ½¿¡ ºÃ´ø select ¹®°ú ´Ù¸¥Á¡ÀÌ ¾ø´Ù. ´ÜÁö È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÒ ¶§ ¹è¿·Î ¼±¾ðÇÏ¿© ¹è¿ÀÇ Å©±â¸¦ Çѹø¿¡ ÆÐÄ¡ÇÒ ÇàÀÇ ¼ö·Î ÁöÁ¤ÇØ ÁÖ¸é µÈ´Ù. º°´Ù¸¥ ³×Æ®¿÷ Æ®·¡ÇÈ ¾øÀÌ °íµµÀÇ »ý»ê¼º Çâ»ó°ú ÇÁ·Î±×·¥ÀÇ ¼º´É Çâ»óÀ» °¡Áú ¼ö ÀÖ´Ù. À§ÀÇ °æ¿ì emp ´Â ÃÑ 14 ÇàÀ¸·Î ±¸¼ºµÇ¾î ÀÖÀ¸¹Ç·Î ¹è¿ Å©±â´Â 14ÀÌ´Ù. ¸¸¾à¿¡ Å×À̺íÀÇ ÇàÀÇ ¼ö°¡ ³Ê¹« ¸¹´Ù¸é ¹è¿·Î ¼±¾ð ÇÑ ÈÄ¿¡ ´Ù½Ã Ä¿¼¸¦ ¼±¾ðÇÏ¿© Çѹø¿¡ ¿©·¯ÇàÀ¸·Î ÆÐÄ¡ÇØ ¿À´Â Çü½ÄÀ¸·Î ÇÏ¸é µÉ °ÍÀÌ´Ù. Ä¿¼¿Í Array ProcessingÀ» ¼¯¾î¼ »ç¿ëÇÏ¸é µÈ´Ù. Ưº°ÇÏ°Ô ¾î·Á¿ï °Í ¾øÀÌ ±¸¼ºÇØ ³¾ ¼ö ÀÖ´Ù. Ä¿¼¸¦ »ç¿ëÇÒ °æ¿ì ÆÐÄ¡°¡ ³¡³ª°Ô µÇ¸é sqlca.sqlerrd [2] ¸¦ ¼ÂÆÃÇϰí sqlcode¸¦ 1403À¸·Î ¼ÂÆÃÇÏ°Ô µÈ´Ù. ¿©±â¼´Â À§¿¡¼ º» °æ¿ì¿Í ´Þ¸® ¸¶Áö¸· ÆÐÄ¡°¡ ¼º°øÇÏ¸é¼ sqlcode¸¦ 1403À¸·Î ¼ÂÆÃÇϰí sqlerrd [2]ÀÇ °ªµµ ¸¶Áö¸· ÆÐÄ¡ÇÒ¶§ÀÇ ÇàÀÇ ¼ö°¡ ¾Æ´Ï¶ó ÆÐÄ¡¸¦ ½ÇÇà ÇÒ¼ö·Ï ÇàÀÇ ¼ö´Â ½×ÀÌ°Ô µÈ´Ù. ±×·¯¹Ç·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ ÁÖÀÇ Çϵµ·Ï Ç϶ó. ½ÇÁ¦ ¿¹Á¦ Äڵ尡 ¾Æ·¡¿¡ ÀÖ´Ù. /* --------------------------------------------------------------------------------
ÆÄÀÏ À̸§ : array_cursor.pc
°³¹ß ÀÏÀÚ : 2002-10-28
ÀÛ¼ºÀÚ : ·ù¸íȯ
-------------------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
/*
* $ORACLE_HOME/precomp/public/sqlca.h ¸¦ Æ÷ÇÔÇØ ÁÖ±â À§Çؼ
*/
exec sql include sqlca;
/*
* È£½ºÆ® º¯¼ö ¼±¾ð
*/
exec sql begin declare section;
/*
* »ç¿ëÀÚ ID¿Í ÆÐ½º¿öµå
*/
char *username;
char *password;
/*
* emp Å×À̺íÀÇ Ä®·³ ¸®½ºÆ®
* ¹Þ¾Æ¿Ã Å×À̺íÀÇ ÇàÀÇ ¼ö¸¸Å ¹è¿À» ¼³Á¤ÇÑ´Ù.
*/
int empno [5];
int mgr [5];
int sal [5];
int comm [5];
int deptno [5];
char ename [5][11];
char job [5][10];
char hiredate [5][10];
/*
* emp Å×À̺í Ä®·³µéÀÇ Indicator º¯¼ö
* ¹Þ¾Æ¿Ã Å×À̺íÀÇ ÇàÀÇ ¼ö¸¸Å ¹è¿À» ¼³Á¤ÇÑ´Ù.
*/
short ind_empno [5];
short ind_mgr [5];
short ind_sal [5];
short ind_comm [5];
short ind_deptno [5];
short ind_ename [5];
short ind_job [5];
short ind_hiredate [5];
exec sql end declare section;
/*
* SQL ¿¡·¯ ¹ß»ý½Ã ½ÇÇàÇÒ ÇÔ¼ö
* ¿¡·¯Äڵ带 ÇÁ¸°Æ® ÇÏ°í ·Ñ¹é ÈÄ¿¡ Á¢¼ÓÀ» Á¾·áÇÑ´Ù.
*/
void sql_error (void)
{
printf ("SQL Error Code : %d\n", sqlca.sqlcode);
printf ("SQL Error Message : %s\n", sqlca.sqlerrm.sqlerrmc);
exec sql whenever sqlerror continue;
exec sql rollback work release;
exit (EXIT_FAILURE);
}
int main (void)
{
int i = 0;
char buf [256] = {'\0', };
username = (char *)strdup ("scott");
password = (char *)strdup ("tiger");
/*
* scott »ç¿ëÀÚ °èÁ¤À¸·Î Á¢¼Ó ½Ãµµ
* Á¢¼Ó ½Ãµµ ÈÄ¿¡ ¼º°ø ¿©ºÎ¸¦ À§ÇØ ¿¡·¯¸¦ °Ë»çÇÑ´Ù.
*/
exec sql
connect :username identified by :password;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Connected to Oracle Database\n");
/*
* ÇØ´ç »ç¿øÀÇ »ç¿ø Á¤º¸¸¦ °¡Á®¿À´Â Ä¿¼¸¦ ¼±¾ðÇÑ´Ù.
* sqlcode¸¦ ÅëÇØ¼ ¿¡·¯¸¦ °Ë»çÇÑ´Ù.
*/
exec sql
declare emp_cur cursor for
select empno, ename, job, mgr, hiredate, sal, comm, deptno
from emp;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
/*
* Ä¿¼¸¦ ¿°í sqlca·Î ¿¡·¯¸¦ °Ë»çÇÑ´Ù.
*/
exec sql
open emp_cur;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
/*
* Ä®·³ÀÇ À̸§À» ÇÁ¸°Æ® ÇÏ°í ÆÐÄ¡ÇÑ ÇàÀÇ ¼ö¸¸Å µ¹·Á¼ ÇÁ¸°Æ®ÇÑ´Ù.
*/
printf ("EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO\n");
while (1)
{
/*
* Çѹø¿¡ 5 Ç྿ ÆÐÄ¡ÇØ³½´Ù.
* Indicator º¯¼ö¸¦ ºÙ¿©¼ NULLÀÌ ÀÖ´ÂÁö °Ë»çÇÑ´Ù.
* ÆÐÄ¡ÇÑ ÈÄ sqlca¸¦ ÅëÇØ ¿¡·¯¸¦ °Ë»çÇÑ´Ù.
*/
exec sql
fetch emp_cur
into :empno:ind_empno, :ename:ind_ename, :job:ind_job, :mgr:ind_mgr,
:hiredate:ind_hiredate, :sal:ind_sal, :comm:ind_comm,
:deptno:ind_deptno;
if (sqlca.sqlcode != 1403 && sqlca.sqlcode != 0)
{
sql_error ();
}
/*
* ¸¸¾à¿¡ sqlcode °¡ 1403 À¸·Î ¼ÂÆÃ µÈ°æ¿ì
* ¸¶Áö¸·À¸·Î ÆÐÄ¡ÇÑ ÇàÀÇ ¼ö¸¦ °è»êÇÏ¿© ÇÁ¸°Æ® Çϰí
* ·çÇÁ¸¦ Á¾·áÇÑ´Ù.
*/
if (sqlca.sqlcode == 1403)
{
for (i = 0; i < sqlca.sqlerrd [2] % 5; i ++)
{
/*
* Indicator º¯¼ö¸¦ °Ë»çÇÏ¿© -1 ÀÎ °æ¿ì´Â ½ÇÁ¦ µ¥ÀÌÅͰ¡ NULL ÀÎ
* °æ¿ì À̹ǷΠ¼ýÀÚÀÎ °æ¿ì -1À» ¹®ÀÚÀÎ °æ¿ì NULLÀ» Âï¾î ÁØ´Ù.
*/
printf ("%5d %10s %9s %4d %9s %7d %7d %2d\n",
(ind_empno [i] == -1) ? -1 : empno [i],
(ind_ename [i] == -1) ? "NULL" : ename [i],
(ind_job [i] == -1) ? "NULL" : job [i],
(ind_mgr [i] == -1) ? -1 : mgr [i],
(ind_hiredate [i] == -1) ? "NULL" : hiredate [i],
(ind_sal [i] == -1) ? -1 : sal [i],
(ind_comm [i] == -1) ? -1 : comm [i],
(ind_deptno [i] == -1) ? -1 : deptno [i]);
}
break;
}
else
{
for (i = 0; i < 5; i ++)
{
/*
* Indicator º¯¼ö¸¦ °Ë»çÇÏ¿© -1 ÀÎ °æ¿ì´Â ½ÇÁ¦ µ¥ÀÌÅͰ¡ NULL ÀÎ
* °æ¿ì À̹ǷΠ¼ýÀÚÀÎ °æ¿ì -1À» ¹®ÀÚÀÎ °æ¿ì NULLÀ» Âï¾î ÁØ´Ù.
*/
printf ("%5d %10s %9s %4d %9s %7d %7d %2d\n",
(ind_empno [i] == -1) ? -1 : empno [i],
(ind_ename [i] == -1) ? "NULL" : ename [i],
(ind_job [i] == -1) ? "NULL" : job [i],
(ind_mgr [i] == -1) ? -1 : mgr [i],
(ind_hiredate [i] == -1) ? "NULL" : hiredate [i],
(ind_sal [i] == -1) ? -1 : sal [i],
(ind_comm [i] == -1) ? -1 : comm [i],
(ind_deptno [i] == -1) ? -1 : deptno [i]);
}
}
}
/*
* µ¥ÀÌÅͺ£À̽º¿Í Á¢¼ÓÀ» Á¾·áÇÑ´Ù.
*/
exec sql
rollback work release;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Disconnect from Oracle Database\n");
exit (EXIT_SUCCESS);
}
Array·Î Select¸¦ ÇÒ ¼ö ÀÖ´Ù¸é ¿ª½Ã Insert, Update, Deleteµµ ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. Áö±Ý±îÁö º¸¾Æ¿Ô´ø °Íó·³ Selectº¸´Ù´Â DMLÀÛ¾÷ÀÌ ´õ ½¬¿ü´Ù. À̰͵µ ´Ü¼øÈ÷ ¹è¿À» ¸¸µé°í °ªÀ» ³Ö°í SQL¹®À» ¼öÇàÇϱ⸸ ÇÏ¸é µÈ´Ù. ¾Æ·¡¿¡ ¿¹Á¦°¡ ÀÖ´Ù. 5°³ÀÇ ÇàÀ» °¡Áø ¹è¿À» ¸¸µç ÈÄ À̰ÍÀ» empÅ×ÀÌºí¿¡ InsertÇϰí CommitÇÑ´Ù. ±× ´ÙÀ½ InsertÇÑ »ç¿øÁ¤º¸¿¡¼ ±Þ¿©¸¦ 20% ÀλóÇÏ°í ¿ª½Ã CommitÇÑ´Ù. ¸¶Áö¸·À¸·Î InsertÇÑ ¸ðµç »ç¿øÀ» DeleteÇϰí CommitÇÑ´Ù. ´Ü¼øÈ÷ ¹è¿·Î È£½ºÆ® º¯¼ö¸¦ ¸¸µé°í »ç¿ëÇÑ °Í ¹Û¿¡´Â ¾øÀ¸´Ï õõÈ÷ »ìÆìº¸µµ·Ï Ç϶ó. Áß°£Áß°£¿¡ getchar()ÇÔ¼ö¸¦ ³Ö¾î ³õ¾Ò´Ù. ÀÌ ½ÃÁ¡¿¡ ´Ù¸¥ Å͹̳ο¡¼ sqlplus·Î µé¾î°¡ emp Å×À̺íÀ» »ìÆìº¸¶ó. µ¥ÀÌÅͰ¡ Àû¿ëµÈ °ÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
/* --------------------------------------------------------------------------------
ÆÄÀÏ À̸§ : array_dml.pc
°³¹ß ÀÏÀÚ : 2002-10-28
ÀÛ¼ºÀÚ : ·ù¸íȯ
-------------------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
/*
* $ORACLE_HOME/precomp/public/sqlca.h ¸¦ Æ÷ÇÔÇØ ÁÖ±â À§Çؼ
*/
exec sql include sqlca;
/*
* È£½ºÆ® º¯¼ö ¼±¾ð
*/
exec sql begin declare section;
/*
* »ç¿ëÀÚ ID¿Í ÆÐ½º¿öµå
*/
char *username;
char *password;
/*
* emp Å×À̺íÀÇ Ä®·³ ¸®½ºÆ®
* ÀÛ¾÷ÇÒ ÇàÀÇ ¼ö¸¸Å ¹è¿À» ¼³Á¤ÇÑ´Ù.
*/
int empno [5] = {9000, 9001, 9002, 9003, 9004};
int mgr [5] = {7788, 7788, 7788, 7788, 7788};
int sal [5] = {3000, 2500, 2500, 2500, 2500};
int comm [5] = {300, 500, 500, 0, 0};
int deptno [5] = {40, 40, 40, 40, 40};
char ename [5][11] = {"Ryu", "Kim", "Lee", "Seo", "Son"};
char job [5][10] = {"Developer", "Developer", "Developer",
"Developer", "Developer"};
/*
* emp Å×À̺í Ä®·³µéÀÇ Indicator º¯¼ö
* ÀÛ¾÷ÇÒ ÇàÀÇ ¼ö¸¸Å ¹è¿À» ¼³Á¤ÇÑ´Ù.
*/
short ind_empno [5] = {0, };
short ind_mgr [5] = {0, };
short ind_sal [5] = {0, };
short ind_comm [5] = {0, 0, 0, -1, -1};
short ind_deptno [5] = {0, };
short ind_ename [5] = {0, };
short ind_job [5] = {0, };
exec sql end declare section;
/*
* SQL ¿¡·¯ ¹ß»ý½Ã ½ÇÇàÇÒ ÇÔ¼ö
* ¿¡·¯Äڵ带 ÇÁ¸°Æ® ÇÏ°í ·Ñ¹é ÈÄ¿¡ Á¢¼ÓÀ» Á¾·áÇÑ´Ù.
*/
void sql_error (void)
{
printf ("SQL Error Code : %d\n", sqlca.sqlcode);
printf ("SQL Error Message : %s\n", sqlca.sqlerrm.sqlerrmc);
exec sql whenever sqlerror continue;
exec sql rollback work release;
exit (EXIT_FAILURE);
}
int main (void)
{
int i = 0;
char buf [256] = {'\0', };
username = (char *)strdup ("scott");
password = (char *)strdup ("tiger");
/*
* scott »ç¿ëÀÚ °èÁ¤À¸·Î Á¢¼Ó ½Ãµµ
* Á¢¼Ó ½Ãµµ ÈÄ¿¡ ¼º°ø ¿©ºÎ¸¦ À§ÇØ ¿¡·¯¸¦ °Ë»çÇÑ´Ù.
*/
exec sql
connect :username identified by :password;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Connected to Oracle Database\n");
/*
* ÇØ´ç »ç¿øÀÇ »ç¿ø Á¤º¸¸¦ Insert ÇÑ´Ù.
* Indicator º¯¼ö¸¦ ºÙ¿©¼ NULLÀÌ ÀÖ´ÂÁö °Ë»çÇÑ´Ù.
* À̶§ È£½ºÆ® º¯¼öµéÀÌ ÀüºÎ ¹è¿·Î ÁöÁ¤ µÇ¸é
* ±× ¹è¿ÀÇ ¼ö¸¸Å ÀÚµ¿À¸·Î InsertÇÑ´Ù.
* ÇѹøÀÇ SQL¹® ½ÇÇàÀ¸·Î 5°³ÀÇ ÇàÀ» ¸ðµÎ Insert ÇÑ´Ù.
* sqlcode¸¦ ÅëÇØ¼ ¿¡·¯¸¦ °Ë»çÇÑ´Ù.
*/
exec sql
insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (:empno:ind_empno, :ename:ind_ename, :job:ind_job, :mgr:ind_mgr,
sysdate, :sal:ind_sal, :comm:ind_comm, :deptno:ind_deptno);
if (sqlca.sqlcode != 0)
{
sql_error ();
}
/*
* InsertÇÑ µ¥ÀÌÅ͸¦ Commit ÇÑ´Ù.
*/
exec sql
commit work;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("%d Array Inserting Succeeded\n", sqlca.sqlerrd [2]);
printf ("Press any key to continue\n");
getchar ();
/*
* À§¿¡¼ Insert ÇÑ ÇàÀÇ ±Þ¿©¸¦ 20% ÀλóÇÏ¿© ¾÷µ¥ÀÌÆ® ÇÑ´Ù.
*/
exec sql
update emp
set sal = sal * 1.2
where empno = :empno;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
/*
* UpdateÇÑ µ¥ÀÌÅ͸¦ CommitÇÑ´Ù.
*/
exec sql
commit work;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("%d Array Updating Succeeded\n", sqlca.sqlerrd [2]);
printf ("Press any key to continue\n");
getchar ();
/*
* À§¿¡¼ Insert ÇÑ ÇàÀ» ¸ðµÎ Delete ÇÑ´Ù.
*/
exec sql
delete from emp
where empno = :empno;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
/*
* DeleteÇÑ µ¥ÀÌÅ͸¦ CommitÇÑ´Ù.
*/
exec sql
commit work;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("%d Array Deleting Succeeded\n", sqlca.sqlerrd [2]);
printf ("Press any key to continue\n");
getchar ();
/*
* µ¥ÀÌÅͺ£À̽º¿Í Á¢¼ÓÀ» Á¾·áÇÑ´Ù.
*/
exec sql
rollback work release;
if (sqlca.sqlcode != 0)
{
sql_error ();
}printf ("Disconnect from Oracle Database\n");
exit (EXIT_SUCCESS);
}
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|