À̼öÁØ(dislevel@newhuman.org)
|
¼ ·Ð Áö³ È£¿¡¼´Â Linux Oracle ÀÇ ¼³Ä¡¹ý°ú »ç¿ëÀÚ µî·Ï, ÀÚµ¿½ÃÀÛ/Á¾·á¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ ¾Ë¾Æº¸¾Ò´Ù. À̹ø È£¿¡¼´Â sqlplus ÀÇ ±âº» »ç¿ë¹ý, Oracle SQL ÁúÀǾî, ±×¸®°í Pro*C ¿¡ ´ëÇØ ¾Ë¾Æº¸°í, ´ÙÀ½ È£¿¡¼´Â PHP3 ¿Í ¿¬µ¿À» ÁÖÁ¦·Î ÀÌ ±ÛÀ» ¸¶Ä¥±î ÇÑ´Ù.
°¡. sqlplus ¸¦ ÀÌ¿ëÇÑ Oracle User ·ÎÀÇ Á¢¼Ó ¸ÕÀú Oracle ÀÌ ½Ã½ºÅÛ¿¡ ¼³Ä¡µÇ¸é¼ ÀÚµ¿ÀûÀ¸·Î
»ý¼ºµÇ´Â µÎ °³ÀÇ Æ¯º°ÇÑ »ç¿ëÀÚ °èÁ¤À» ¾Ë¾Æº¸ÀÚ. SQL*PLUS ¿¡ ¿¬°áÇÏ°í »ç¿ëÀÚ¸¦ »ý¼ºÇÑ´Ù. $ sqlplus system/manager SQL*Plus: Release 8.0.5.1.0 - Production Copyright (c) Oracle Corporation 1997. All rights reserved. Connected to: Oracle8 Server Release 8.0.5.0.0 - Production Release PL/SQL Release 8.0.5.0.0 - Production SQL> create user <user> identified by <psw> User created. SQL> grant connect, resource to <user> Grant succeeded. SQL> exit ½Ã½ºÅÛ¿¡ »õ·Î¿î »ç¿ëÀÚ°èÁ¤À» »ý¼ºÇÏ¿´±â ¶§¹®¿¡ »õ·Î¿î °èÁ¤À» °¡Áö°í ½Ã½ºÅÛ¿¡ ·Î±×ÀÎ ÇÒ ¼ö ÀÖ´Ù. Oracle µ¥ÀÌÅͺ£À̽º¿¡ ·Î±×ÀÎ Çϱâ À§Çؼ´Â ´ÙÀ½°ú °°´Ù. $ sqlplus <user>/<password> ÀÌÁ¦¾ß ºñ·Î¼Ò ¿©·¯ºÐÀº Oracle µ¥ÀÌÅͺ£À̽º¿Í ½ÇÁúÀûÀÎ ´ëȸ¦ ÇÒ ¼ö ÀÖ´Â Áغñ°¡ ´Ù µÇ¾ú´Ù. ¿©·¯ºÐµéÀº sqlplus ¸¦ ÅëÇؼ ÀÌ ÀÏÀ» ÇÒ ¼ö ÀÖ´Ù.
³ª. sqlplus ÀÇ °£´ÜÇÑ ÀÌÇØ sqlplus ´Â ´ÙÀ½°ú °°Àº ±â´ÉÀ» Á¦°øÇÑ´Ù. ¹é¹®ÀÌ ºÒ¿©ÀÏ°ßÀ̶ó, °£´ÜÇÑ ¿¹Á¦¸¦ ÅëÇؼ À§ÀÇ »çÇ×À» Á¤¸®ÇØ º¸µµ·Ï ÇÏÀÚ. SQL À» ¸ÕÀú ¼³¸íÇÏ´À³Ä sqlplus¸¦ ¸ÕÀú ¼³¸íÇÏ´À³Ä ¹®Á¦´Â ÀÏ´Ü µ¤¾î³õÀÚ. (»ç½Ç Oracle À» ¼Õ´ë°íÀÚ ÇÑ´Ù¸é ±âº»ÀûÀÎ SQL Á¤µµ´Â ¾Ë°í ÀÖ¾î¾ß ÇÏÁö ¾ÊÀ»±î?) °¡Àå ¸¹ÀÌ ¾²´Â ¿¹·Î ÀüȹøÈ£ºÎ µ¥ÀÌÅͺ£À̽º¸¦ ±¸¼ºÇغ¸ÀÚ. ÀüȹøÈ£ºÎ¿¡´Â »ç¶÷ÀÇ À̸§, ÁÖ¼Ò, ÀüȹøÈ£ µîÀÇ Çʵ尡 ÇÊ¿äÇÏ´Ù. sqlplus »ó¿¡¼ ´ÙÀ½À» ÀÔ·ÂÇØ º¸ÀÚ. [oracle@ora oracle]$ sqlplus dislevel/******
; ¿©·¯ºÐÀÌ »ý¼ºÇÑ »ç¿ëÀÚ·Î Á¢¼ÓÇÒ °Í!! (c) Copyright 1998 Oracle Corporation. All rights reserved. Connected to: SQL> Table created. SQL> sqlplus ¸¦ »ç¿ëÇØ º¸¸é ¾Ë°ÚÁö¸¸, postgresql ÀÇ ±×°Íº¸´Ù´Â ÈξÀ ºÒÆíÇÒ °ÍÀÌ´Ù. Å×À̺íÀ» ±¸¼ºÇÏ´Â Çʵ尡 ¸î °³ ¾ÈµÇ±â¿¡ ¸ÁÁ¤ÀÌÁö, ¼ö½Ê°³³ª µÇ´Â ÇʵåÁß¿¡¼ Çϳª¶óµµ öÀÚ³ª ¹®¹ýÀÌ À߸øµÈ´Ù¸é óÀ½ºÎÅÍ ´Ù½Ã ÃľߵǴ ºÒ»ó»ç°¡ »ý±â¸®¶ó. ´ç¿¬È÷, ¿©·¯ºÐµéÀ» µµ¿ÍÁÙ ÁÁÀº ¹æ¹ýÀÌ ÀÖ±â´Â Çѵ¥, ¹Ù·Î vi °°Àº ÆíÁý±â¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. sqlplus »ó¿¡¼ vi ÆíÁý±â¸¦ ºÎ¸£·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. SQL> ÀÌÁ¦ ¿©·¯ºÐµéÀº ¸¾ ³õ°í SQL ¹®À» ÆíÁý ÇÒ ¼ö ÀÖ´Ù. ºñ·Ï °£´ÜÇÑ ¹®ÀåÀ̱â´Â ÇÏÁö¸¸ À§ÀÇ SQL ¹®À» vi¸¦ ÀÌ¿ëÇØ ÀÔ·ÂÇÏ°í ÀúÀåÇÏÀÚ. ÆÄÀÏ À̸§À» tel_list.sql À̶ó°í Çß´Ù¸é, ´ÙÀ½°ú °°ÀÌ start ¹®À» ÀÌ¿ëÇÑ´Ù. ~ SQL> start tel_list.sql Table created. SQL> °£´ÜÇϳª¸¶, sqlplus ¿¡¼ÀÇ ÀÛ¾÷À» ¸î °¡Áö ÇØ º¼ ¼ö ÀÖ¾ú´Ù. ¾Æ½Ã´Ù½ÃÇÇ, µ¥ÀÌÅͺ£À̽º¿¡¼ÀÇ ÀÛ¾÷Àº ´ëºÎºÐ table ÀÇ »ý¼º°ú »èÁ¦, ÀÚ·áÀÇ ÀÔ·Â, »èÁ¦ ¼öÁ¤ µîÀÌ´Ù. ±× ÀÌ¿Ü¿¡ ½Ã½ºÅÛ °ü¸® ÀûÀÎ Ãø¸éÀº µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ¸¶´Ù Á¶±Ý¾¿ Â÷ÀÌ°¡ ÀÖÀ¸¹Ç·Î Á» ´õ ±í¼÷ÇÑ ³»¿ëÀº ÇØ´ç ¸Å´º¾óÀ̳ª Ã¥ µîÀ» Âü°íÇÏ´Â °ÍÀÌ ÁÁ´Ù. sqlplus ¿¡¼ »ç¿ëµÇ´Â ¸î °¡Áö ±â´ÉÀ» ´õ »ìÆ캸ÀÚ. Table ÀÇ »èÁ¦ drop table <table_name>; Table ÀÇ ±¸¼º ¿ä¼Ò È®ÀÎ desc table tel_list; ; tel_list
.. ¿ª½Ã table_name ÀÌ´Ù. Name Null?
Type SQL> SQL ¸í·É Áß ·¹ÄÚµåÀÇ º¯°æÀ» ¹ß»ý½Ãų ¼ö ÀÖ´Â ¸í·ÉÀ» ½ÇÇàÇÏ°íÀÚ ÇÒ °æ¿ì. delete, update, insert µîµî, ¿¡´Â commit ¸í·ÉÀ» ÇØ ÁÖ¾î¾ß ±× Áï½Ã È¿°ú¸¦ º¼ ¼ö ÀÖ´Ù. commit ´ë½Å rollback ¸í·ÉÀ» ½ÇÇàÇϸé delete ³ª update, insert µîÀÇ ¹®ÀåµéÀÌ ¸í·É Ãë¼Ò°¡ µÈ´Ù. commit; ollback; ´ÙÀ½ÀÇ ¿¹Á¦´Â ¹»±î? Á¶±Ý µ¶Æ¯Çϱâ´Â Çѵ¥ ÀÌ ºÎºÐÀº µ¶ÀÚ ¿©·¯ºÐµé¿¡°Ô ¼÷Á¦·Î ³²±â°Ú´Ù. select * from user_objects; sqlplus ÀÇ Á¾·á´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
´Ù. Oracle µ¥ÀÌÅÍ Å¸ÀÔ ÀÌÁ¦ sqlplus ¿¡¼ °£´ÜÇϳª¸¶ ¸î °¡Áö ÀÛ¾÷À» ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÀÌÁ¦´Â Oracle ÀÇ SQL À» ¿©·¯ °³ ¤¾îº¸±â·Î ÇÏÀÚ. sqlplus ¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº ¿ª½Ã RTFM !! ColumnÀÇ À¯ÇüÀº ¸Å¿ì ¸¹Àºµ¥ ±âº»ÀûÀÎ µ¥ÀÌÅÍ
À¯ÇüÀº ¹®ÀÚ, ¼ýÀÚ, DATE, RAW°¡ ÀÖ´Ù. SQL> select TO_CHAR(SYSDATE,¡¯YYYY-MM-DD HH:MI:SS PM¡¯) from DUAL; TO_CHAR(SYSDATE,¡¯YYYY- SQL> À§ ¿¹Á¦´Â ÇöÀçÀÇ (½Ã½ºÅÛ)½Ã°£À» ¿øÇÏ´Â Çü½Ä´ë·Î º¸¿©ÁØ ¿¹ÀÌ´Ù. TO_CHAR À̶ó´Â ¸»Àº ÁüÀÛÇÏ°ÚÁö¸¸, ÀÚ·áÇüÀ» char ÇüÀ¸·Î ¹Ù²Ù¾î ÁØ´Ù. ½Ã°£À» ¹®ÀÚÇüÀ¸·Î ¹Ù²Ù¾î ¿©·¯ºÐµéÀÌ È°¿ëÇÒ ¼ö ÀÖ´Ù´Â ¸»ÀÌ´Ù.
¶ó. Oracle SQL ¾ð¾î Oracle SQL Àº ±â´É»ó ´ÙÀ½ 3 °³ÀÇ ºÐ¾ß·Î ³ª´«´Ù. DDL(Data Definetion Language) ¿ÀºêÁ§Æ® Á¤ÀÇ ±â´É, Å×ÀÌºí »ý¼º CREATE »ý¼º
(CREATE·Î »ý¼ºÇÑ TableÀº DROPÀ¸·Î »èÁ¦ÇÑ´Ù.) DML(Data Manipulation Language) µ¥ÀÌŸ Á¶ÀÛ ±â´É,Çà°ú ¿¿¡ ´ëÇÑ ÀÛ¾÷ SELECT µ¥ÀÌÅÍ
Ãëµæ DCL(Data Contorl Language) µ¥ÀÌŸ Á¦¾î ±â´É, À¯Àú°ü¸® GRANT ºñ·Ï ¼³¸íÀº ºÎÁ·ÇßÁö¸¸, ¾î·°Å³ª ¿©·¯ºÐÀº create ¹®À» ÅëÇØ µ¥ÀÌÅͺ£À̽º »ç¿ëÀÚ, table µîÀ» ¸¸µé¾î µÐ »óÅ´Ù. (Á» Àü¿¡ tel_list ¶ó´Â table À» ¸¸µé¾î µÐ °ÍÀ» ±â¾ïÇÏÀÚ) ÀÌ°ÍÀ» ÀÌ¿ëÇØ À§ÀÇ SQL ¸í·É¾î¸¦ ÀÌÇØÇØ º¸ÀÚ. ÀÌ ¿¬Àç¿¡¼ ÁÖ·Î ´Ù·ç´Â ³»¿ëÀº select, delete µîÀÇ DML ¸í·É¾îµéÀÌ´Ù. ¸ÕÀú ¾Æ±î ¸¸µé¾î µÐ tel_list table ¿¡ ¾î¶² °ªÀ» ³Ö¾îº¸±â·Î ÇÏÀÚ. SQL> insert into tel_list values 1 row created. SQL> Insert ±¸¹®Àº ºñ±³Àû °£´ÜÇÏ´Ù. ÇØ´ç Å×ÀÌºí ¸í°ú °ªÀ» Â÷·Ê´ë·Î Áý¾î³ÖÀ¸¸é µÈ´Ù. ¿©·¯ °¡Áö SQL ±¸¹®ÀÇ ¿¬½ÀÀ» À§ÇØ Á» ´õ ¸¹Àº µ¥ÀÌÅ͸¦ »ðÀÔÇϱ⠹ٶõ´Ù. ´ÙÀ½Àº ¿Ã·ÁÁø ÀÚ·áÀÇ ¼öÁ¤ÀÌ´Ù. SQL> update tel_list set phone = ¡®016-223-****¡¯ where name = ¡®À̼öÁØ¡¯; 1 row updated. SQL> SQL> delete from tel_list where name=¡¯À̼öÁØ¡¯; 1 row deleted. ¸¶Áö¸·À¸·Î select ±¸¹®ÀÌ´Ù. select ±¸¹®À» ¸Ç ¸¶Áö¸·À¸·Î ÇÑ ÀÌÀ¯´Â ´Ù¸¥ ÁúÀǾî¿Í´Â ´Þ¸® ºÎ°¡ÀûÀÎ ±¸¹®ÀÌ ¸¹±â ¶§¹®ÀÌ´Ù. ÀÌÁ¦ºÎÅÍ Çϳª¾¿ »ìÆ캸±â·Î ÇÏÀÚ. ´ÙÀ½Àº ±âº»ÀûÀÎ select ±¸¹®ÀÌ´Ù. º¸±â ½±°Ô ¾à°£ ¼ÕÁúÇß´Ù. SQL> select * from tel_list; NAME ADDR
PHONE SQL> select name, phone from tel_list; NAME PHONE SQL> select * from tel_list where name like ¡®ÀÌ%¡¯; NAME ADDR
PHONE SQL> Çϳª¾¿ »ìÆ캸±â·Î ÇÏÀÚ. óÀ½ ÁúÀÇ ¹®Àº °£´ÜÇÏ´Ù. tel_list TABLE »óÀÇ ¸ðµç ÀڷḦ º¸¿©ÁØ´Ù. µÎ ¹ø° ÁúÀÇ ¹®Àº ¿øÇÏ´Â ÀÚ·á(¿¹·Î À̸§°ú ÀüȹøÈ£)¸¸À» º¸¿©ÁØ´Ù. ¼¼ ¹ø° ÁúÀǹ®Àº Á¶±Ý µ¶Æ¯ÇÏ´Ù. where Àý ÀÌÇÏ¿¡¼ name ÇʵåÀÇ Á¦¾àÀÌ ¡®like¡¯ ·Î ³ª¿ÍÀÖ´Ù. ÀÌ°ÍÀº °Ë»ö¿£ÁøµîÀ» ±¸ÇöÇÑ ¶§ À¯¿ëÇѵ¥ ¡®ÀÌ%¡¯ ¶ó´Â ¸»Àº ù ±ÛÀÚ¿¡ ¡®ÀÌ¡¯ ÀÚ°¡ µé¾î°¡´Â ¸ðµç ÀڷḦ ã¾ÆÁØ´Ù. ¹®ÀÚ¿ Áß¿¡ ¡®ÀÌ¡¯ °¡ Æ÷ÇÔµÈ´Ù¸é ¡®%ÀÌ%¡¯ ÀÏ °ÍÀÌ´Ù. like ±îÁö ÀÌÇØÇß´Ù¸é ²Ò³ª ¼º°øÇÑ °ÍÀÌ´Ù. ±×·±µ¥ ÀÌ°ÍÀ¸·Î ³¡³ °ÍÀÌ ¾Æ´Ï´Ù. °è¼Ó »ìÆ캸±â·Î ÇÏÀÚ. SQL> select name from tel_list; NAME SQL> select name from tel_list order by name; NAME SQL> select name from tel_list order by name desc; NAME SQL> À§ÀÇ ¿¹´Â order by¸¦ ÀÌ¿ëÇÑ ¿¹ÀÌ´Ù. óÀ½ °ÍÀº
order by ¸¦ ÀÌ¿ëÇÏÁö ¾ÊÀº °ÍÀÌ°í ´ÙÀ½Àº À̸§ ¼ø¼´ë·Î °Ë»öÇÑ
¿¹ÀÌ¸ç ¸¶Áö¸·Àº À̸§ÀÇ ¿ª¼øÀÌ´Ù. ADDR COUNT(*) À§ÀÇ ¿¹´Â µ¥ÀÌÅÍÀÇ Åë°è¸¦ ³¾ ¶§ ¸¹ÀÌ ¾²ÀδÙ. ¿ì¸®°¡ ¸¸µé¾îµÐ ÁÖ¼Ò Çʵ尡 ±×¸® ¼¼ºÐȵÇÁö´Â ¾Ê¾ÒÁö¸¸ ³ªÁß¿¡ ½Ã, ±º, µµ ¸í µîÀ» ¼¼ºÐÈ ÇØ µÐ´Ù¸é À§ÀÇ ¿¹´Â ÀûÀýÇÒ °ÍÀÌ´Ù. ¼³¸íÀ» ÇÏÀÚ¸é ÁÖ¼Òº° »ç¶÷µé ¼ö¸¦ ³ªÅ¸³½´Ù°í ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¿Ü¿¡µµ ¸¹Àº ÁúÀǾîµéÀÌ ¿À¶óŬ¿¡´Â Á¸ÀçÇϴµ¥, ´ëÃæ ¸¹ÀÌ ¾²ÀÌ´Â °ÍµéÀ» ¼³¸íÇØ º¸¾Ò´Ù. Oracle SQL ¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº ÇØ´ç ¹®¼µéÀ» Âü°íÇϱ⠹ٶõ´Ù.
¸¶. Oracle Pro*C Pro*C Åø Àº SQL¹®À» ³ÖÀº C ÇÁ·Î±×·¥À» Oracle µ¥ÀÌÅͺ£À̽º¿¡ ÀÖ´Â µ¥ÀÌÅÍÀÇ ¿¢¼¼½º¿Í Á¶ÀÛÀ» ÇÒ ¼ö ÀÖ´Â C ÇÁ·Î±×·¥À¸·Î º¯È¯Çϱâ À§ÇÑ pre-compiler ÀÌ´Ù. Pro*C ÄÄÆÄÀÏ·¯´Â ÀÔ·Â ÇÁ·Î±×·¥ (Pro*C ÆÄÀÏ : *.pc) ¿¡ ÀÖ´Â EXEC SQL ¹®À» Àû´çÇÑ Oracle Call ·Î º¯È¯ÇÏ¿© Ãâ·ÂÆÄÀÏ(C ¼Ò½ºÆÄÀÏ: *.C)À» ÀÛ¼ºÇÑ´Ù. ÇÁ·Î±×·¥ ÀÛ¼º ¼ø¼´Â ´ÙÀ½°ú °°´Ù. 1) Pro*C ¼Ò½º ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù.(*.pc) 2) Pro*C¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥À» ÇÁ¸®ÄÄÆÄÀÏ ÇÑ´Ù. (*.pc --> *c) 3) CÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÏ¿© ¿ÀºêÁ§Æ®ÆÄÀÏÀ» ¸¸µç´Ù. (*.c --> *.o) 4) ¿ÀºêÁ§Æ®ÆÄÀÏ¿¡ ÇÊ¿äÇÑ ¶óÀ̺귯¸®ÆÄÀÏÀ» ¸µÅ©ÇÏ¿© ½ÇÇàÆÄÀÏÀ» ¸¸µç´Ù. (*.o --> ½ÇÇà °¡´É ÆÄÀÏ) ½ÇÁ¦·Î ¿©·¯ºÐµéÀÌ Linux Oracle ÀÇ ¸ðµç ±¸¼ºÀ» ºüÁü¾øÀÌ ¼³Ä¡ÇÏ¿´´Ù¸é ´ÙÀ½ÀÇ µð·ºÅ丮¿¡ Pro*C ÀÇ ¿¹Á¦µéÀÌ ÀÖÀ» °ÍÀÌ´Ù. [oracle@ora oracle]$ ls -l app/oracle/product/8.0.5/plsql/demo -rw-r--r-- 1 oracle dba 972
Feb 12 06:59 examp7.sql acle]$ ¿©±â¼ demo_plsql.mk °¡ º» ¿¹Á¦µéÀÇ make ÆÄÀÏÀÌ´Ù. Á÷Á¢ ÄÄÆÄÀÏ ÇØ º¸·Á¸é make -f¸¦ ÀÌ¿ëÇؼ ½ÇÇàÇØ º¸±â ¹Ù¶õ´Ù. ¿©·¯ºÐÀÇ Oracle ȯ°æ ¼³Á¤¿¡ ¾à°£ ¹®Á¦°¡ ÀÖ´Ù¸é ¿øÈ°ÇÑ ÄÄÆÄÀÏ°ú ½ÇÇàÀ» À§ÇØ /etc/ld.co.conf ¿¡ ´ÙÀ½À» Ãß°¡ÇÏ°í ldconfig À» ½ÇÇàÇ϶ó. /home/oracle/app/oracle/product/8.0.5/lib Áö¸é °ü°è»ó Pro*C ÀÇ ¸ðµç ±¸¼ºÀ» ¼³¸íÇÒ ¼ö ¾ø°í °£´ÜÇÑ ¿¹Á¦ Çϳª¸¦ ÅëÇؼ Pro*C¸¦ ÀÍÇôº¸µµ·Ï ÇÏÀÚ. ¾Æ·¡ ¿¹Á¦´Â ÇÊÀÚ°¡ ¾ó¸¶ Àü ¡®´º ÈÞ¸Õ ´Ü¡¯ À̶ó´Â ÀâÁöÀÇ °Ë»ö ¿£ÁøÀ» »ùÇ÷Πº¸¿©ÁÖ±â À§ÇØ °£´ÜÈ÷ ±ÞÁ¶ÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. ³»¿ëÀº °£´ÜÇÏÁö¸¸ Áö±Ý±îÁö ±Ûµé¿¡¼ ÀüÇô ¼³¸íµÇÁö ¾Ê¾Ò´ø ºÎºÐÀÌ ³ª¿À¹Ç·Î ÁÖÀÇÇؼ º¸±â·Î ÇÏÀÚ. /* º» ÇÁ·Î±×·¥¿¡¼´Â µÎ °³ÀÇ tableÀ» ÀÌ¿ëÇÑ´Ù. KWTIT table Àº ÇØ´ç Å°¿öµåÀÇ ³»¿ëÀÌ ÀÖ´Â ÆÄÀϸí°ú ±× ±ÛÀÇ Á¦¸ñÀ» Æ÷ÇÔÇÏ°í, TITDS ¿¡¼´Â ±ÛÀÇ Á¦¸ñ°ú ±× ±ÛÀÇ ¿ä¾à¹®ÀÌ ÀúÀåµÇ¾î ÀÖ´Ù Å°¿öµå¸¦ ÀÔ·ÂÇÏ°Ô µÇ¸é ÇØ´ç±ÛÀÇ Á¦¸ñ°ú, ¿ä¾à, ±× ±Û·ÎÀÇ ¸µÅ©°¡ ³ªÅ¸³´Ù. */ #include <stdio.h> #include ¡°qDecoder.c¡± /* Web
¿¡¼ÀÇ ÀÛµ¿À» À§ÇØ cgiserver.netÀÇ query ó¸® cgi¸¦ #define UNAME_LEN 20 typedef char asciiz[PWD_LEN]; EXEC SQL INCLUDE sqlca.h; /* error ó¸® */ EXEC SQL TYPE asciiz IS CHARZ(PWD_LEN) REFERENCE;
/* asciiz ¿¡ ´ëÇÑ Á¤ÀÇ */ putenv(¡°NLS_LANG=AMERICAN_AMERICA.KO16KSC5601¡±);
/* Oracle ÀÇ È¯°æ */ qContentType(¡°text/html¡±); strcpy(username,¡±book¡±); /*
Oracle ·Î ¿¬°áÇϱâ À§ÇÑ */ EXEC SQL CONNECT :username IDENTIFIED BY :password; /* Oracle ·Î ¿¬°á */ /* Ä¿¼ (CURSOR) ÀÇ »ç¿ë, Ä¿¼´Â Äõ¸®¹®À» ¼öÇàÇÒ ¶§ ÀÌ¿ëµÇ´Â ÀÛ¾÷ ¿µ¿ªÀÌ´Ù. ¾Æ·¡ ³»¿ëÀ» »ìÆ캸¸é, ¿ì¸®°¡ ÇÊ¿äÇÑ ÀÚ·áµé, ±×·¯´Ï±î Å°¿öµå¿¡ ÇØ´çÇÏ´Â ±ÛÀÇ Á¦¸ñ(ŸÀÌƲ)°ú ±× ±ÛÀÇ ¿ä¾à¹®, ±× ±ÛÀÌ ÀúÀåµÈ ÆÄÀÏ¸í µéÀ» newhumandahn À̶ó´Â Ä¿¼·Î Á¤ÀÇÇÏ¿© ÀÛ¾÷À» ÁøÇàÇÏ°Ô µÈ´Ù. ±×¸®°í ¼³¸í¿¡¼ ºüÁø join À» ÀÌ¿ëÇÑ °Ë»öÀÌ ÀÌ·ç¾îÁö´Âµ¥, join À̶õ ¼·Î ´Ù¸¥ µÎ Å×ÀÌºí¿¡¼ °Ë»öÇÏ´Â ¹æ¹ýÀ» ¸»ÇÑ´Ù. */ EXEC SQL DECLARE newhumandahn CURSOR
FOR /* newhumandahn Ä¿¼ Á¤ÀÇ */ EXEC SQL OPEN newhumandahn; /* Ä¿¼¸¦ ¿¬´Ù */ EXEC SQL FETCH newhumandahn INTO :tit,
:ds, :fname; /* ¿øÇÏ´Â ÀڷḦ */ /* °á°úÀÇ Ãâ·Â, HTML ·Î */ printf(¡°<br><center><h2>
RESULT </h2></center><br>¡±); while(sqlca.sqlcode==0) /* °ªÀÌ ´õ ÀÌ»ó
¾øÀ» ¶§ ±îÁö */ printf(¡°</td></tr><tr><td
width=600 height=25><p>¡±); EXEC SQL FETCH newhumandahn INTO
:tit, :ds, :fname; /* °è¼Ó */ printf(¡°</table></div>¡±); EXEC SQL CLOSE newhumandahn; /* newhumandahn Ä¿¼ ´ÝÀ½ */ exit(EXIT_SUCCESS); ÀÌ»óÀ¸·Î sqlplus ¿Í Pro*C ¿¡ ´ëÇÑ ³»¿ëÀ» ¸¶Ä¥±î ÇÑ´Ù. Á¦ÇÑµÈ Àå¿¡ ¸¹Àº ³»¿ëÀ» ´ãÀ¸·Á´Ù º¸´Ï ±ÛÀÌ ±¸Ã¼ÀûÀÌÁö ¸øÇÑ °Å °°¾Æ Á˼ÛÇÑ ¸¶À½ÀÌ µç´Ù. ´õ ÀÚ¼¼ÇÑ °Ç ¸Å´º¾óÀ̳ª ±âŸ Oracle °ü·Ã ȨÆäÀÌÁö¸¦ ¹æ¹®ÇØ º¸±â ¹Ù¶õ´Ù. ´ÙÀ½ È£¿¡¼´Â PHP3 ¿ÍÀÇ ¿¬µ¿À» ÁÖÁ¦·Î ÀÌ ¿¬À縦 ¸¶Ä£´Ù. Á» ´õ ¼¼·ÃµÈ ÁÖÁ¦·Î ¹æ¸í·ÏÀ» ¸¸µé¾î º¼ °ÍÀÌ´Ù. ±â´ëÇصµ ÁÁ´Ù. |