#  -ÌŸj Ì7BNWbkt‰’›£®·ÀÉÌ -J.u/�0·1Õ2 3#4E5e6Š7ºÓà»Ô´ä¿ÅìÍÔ¹¾Øµà¾×èÍÍèÒ¹¢éÍÁÙÅÍÕ¡¤ÃÑé§äÁèä´éà»Ô´ä¿ÅìàÍÒµì¾Øµ·ÕèÊÃéÒ§ÃËÑÊ "%s" äÁèä´éà»Ô´ä¿ÅìÊÓËÃѺ¡ÒÃÃÇÁäÁèä´é¡ÒûÃСÒȿѧ¡ìªÑ¹ C äÁè¶Ù¡µéͧ¤èÒ¼ÊÁ¢Í§¡ÒûÃСÒȿѧ¡ìªÑ¹ C ẺãËÁèáÅÐà¡èÒäÁè¶Ù¡µéͧª×èͿѧ¡ìªÑ¹ C äÁè¶Ù¡µéͧ¡àÅÔ¡ä´éã¹¢³Ðãªé¾ÒÃÒÁÔàµÍÃìà´ÕèÂǵéͧÁÕ ID 㹡ÒûÃСÒȿѧ¡ìªÑ¹¹Õé¡ÒûÃСÒȾÒÃÒÁÔàµÍÃìẺàµçÁäÁè¶Ù¡µéͧ¾ÒÃÒÁÔàµÍÃìẺàµçÁ VARCHAR ¤ÇûÃСÒÈà»ç¹¾ÍÂàµÍÃìÁÕ¿ÔÅ´ìºÔµ VARCHAR äÁèä´é 8J9t:©;Ò<ø=%>M?j@ŒA¿BâöãªéÍÒàÃÂì VARCHAR ÁÒ¡¡ÇèÒ 2 ä´àÁ¹ªÑ¹äÁèä´é¡ÒûÃСÒÈ VARCHAR ÁÕÃٻẺäÁè¶Ù¡µéͧ - äÁèÃкؤÇÒÁÂÒÇ»ÃÐàÁÔ¹¢¹Ò´¤èÒ¤§·Õè¢Í§àÍç¡«ìà¾ÃʪѹäÁèä´é»ÃÐàÁÔ¹àÍç¡«ìà¾Ãʪѹà»ç¹¤èÒ¤§·ÕèäÁèä´éâÍà»ÍàÃàµÍÃìã¹àÍç¡«ìà¾Ãʪѹ¤èÒ¤§·ÕèäÁè¶Ù¡µéͧàÍç¡«ìà¾Ãʪѹ¢Í§»ÃÐàÀ·¡ÒáÓ˹´äÁè¶Ù¡µéͧàÍç¡«ìà¾Ãʪѹ»ÃÐàÀ·äÁè¶Ù¡µéͧ»ÃÐàÀ·àÍç¡«ìà¾ÃʪѹäÁèµÃ§¡Ñº·Õèãªé¹Ô¾¨¹ì·Ò§¤³ÔµÈÒʵÃìäÁèÁÕ»ÃÐàÀ·à¤Ã×èͧËÁÒ·Õè¶Ù¡µéͧãËéźä´é੾ÒоÍÂàµÍÃì 2 ¤èÒà·èÒ¹Ñé¹¾º ID ·ÕèäÁèä´é¡Ó˹´ CPD�E£FÃGèHI+JWK}L“M³NÑ󾺪×èÍ typedef ·Õèãªéã¹àÍç¡«ìà¾Ãʪѹ (µéͧ¡ÒäèÒ)¾ºª×è͵ÑÇá»Ã·Õèãªéà»ç¹ª×èÍ typedef¡Ò÷ӧҹẺäÁèÁÕ·ÔÈ·Ò§äÁè¶Ù¡µéͧ¡Ò÷ӧҹ·ÕèÍéÒ§ÍÔ§â¤Ã§ÊÃéÒ§äÁè¶Ù¡µéͧµéͧÁÕâ¤Ã§ÊÃéÒ§ËÃ×;ÍÂàµÍÃì¢Í§â¤Ã§ÊÃéÒ§äÁèä´é¡Ó˹´ÊÁÒªÔ¡ã¹â¤Ã§ÊÃéÒ§¾º¢éÍÁÙÅÍéÒ§ÍÔ§ÊÓËÃѺ¿Ñ§¡ìªÑ¹·ÕèÂѧäÁè»ÃСÒȤҴÇèÒàÍç¡«ìà¾Ãʪѹà»ç¹»ÃÐàÀ·¨Ó¹Ç¹àµçÁäÁèä´é¡Ó˹´ ID ¢Í§ SQL¾ÂÒÂÒÁ·Õè¨Ð¡Ó˹´ ID ¢Í§ SQL ãËÁèäÁèä´é»ÃСÒÈ ID SQL à»ç¹¤ÓÊÑè§äÁèä´é»ÃСÒÈ ID SQL à»ç¹à¤ÍÃìà«ÍÃì O>PmQšRÌS÷TU+VHW”Æà¹×éÍËҢͧà¤ÍÃìà«ÍÃìµéͧÁÕ¡ÒõÑ駪×èÍ ID ¤ÓÊÑè§àÍç¡«ìà¾Ãʪѹ¢Í§µÑÇá»ÃâÎʵìÁÕ»ÃÐàÀ·äÁè¶Ù¡µéͧ»ÃСÒÈÍÒàÃÂì·ÕèÁÕËÅÒÂä´àÁ¹ªÑ¹ãËé¡Ñº»ÃÐàÀ·¹ÕéäÁèä´éâ¤Ã§ÊÃéÒ§¹ÕéÁÕâ¤Ã§ÊÃéÒ§ËÃ×Í¡ÒÃÃÇÁ·Õè«é͹¡Ñ¹µÑÇá»ÃâÎʵìà»ç¹»ÃÐàÀ·¡ÒÃÃÇÁäÁèä´éâ¤Ã§ÊÃéÒ§ÁÕ¿ÔÅ´ìºÔµµÑÇá»ÃâÎʵìÁÕ»ÃÐàÀ·äÁè¶Ù¡µéͧ¡ÒÃãªé WHERE CURRENT OF ã¹à¤ÍÃìà«ÍÃì·Õè¡Ó˹´â´ÂäÁèÁÕÊèǹ¢Í§¤ÓÊÑè§ FOR UPDATEà¹×éÍËҢͧà¤ÍÃìà«ÍÃìµéͧà»ç¹àÍç¡«ìà¾Ãʪѹ¡ÒÃÊ׺¤é¹ XJY‚Z¸[Ö\ø]^6_R`sa™bÏõ¢¹Ò´ÍÒàÃÂì¢Í§µÑÇá»ÃâÎʵìäÁèµÃ§¡Ñ¹ ¢¹Ò´µèÓÊØ´·Õèãªé: %ldµéͧÃÐºØ SQLCHECK=SEMANTICS àÁ×èÍãªéºÅçͤ PL/SQL ÀÒÂã¹¾º¢éͼԴ¾ÅÒ´´éÒ¹ÀÒÉҢͧ PL/SQL¾º¢éͼԴ¾ÅÒ´¢Í§ÃٻẺ¤ÓÊÑè§ PL/SQLãªéµÑǺ觪Õé㹤ÓÊÑè§ EXEC IAF äÁèä´éµéͧÃкطȹÔÂÁ¢Í§»ÃÐàÀ·¹Õéà·Õº¤èÒ»ÃÐàÀ· SQL ¹ÕéäÁèä´é¡ÒÃà·Õº¤èÒ»ÃÐàÀ·¢éÍÁÙÅäÁè¶Ù¡µéͧµÓá˹觡ÒÃ亹´ìÍÂÙè¹Í¡¢Íºà¢µ¨Ò¡ PL/SQLà¡Ô´¢éͼԴ¾ÅÒ´¢Í§ÀÒÉÒ·ÕèºÃ÷Ѵ %d ¤ÍÅÑÁ¹ì %d ä¿Åì %s: ä¿Åì·ÕèÁÕ #include ÁÕ¤ÓÊÑè§ SQL äÁèä´é c>dwe¡fÜgh6i^j‹k´ѵÑÇàÅ×Í¡äÁè¶Ù¡µéͧËÃ×Íà»ç¹àÇÍÃìªÑ¹à¡èÒ Ãкº¨ÐäÁè»ÃÐÁÇżžº¤Óàµ×͹·ÕèºÃ÷Ѵ %d ¤ÍÅÑÁ¹ì %d ä¿Åì %s: ãªé¡ÒÃàÃÕ¡ãªé¿Ñ§¡ìªÑ¹à»ç¹àÍç¡«ìà¾Ãʪѹ¢Í§µÑÇá»ÃâÎʵìäÁèä´éID ·ÕèµÒÁ´éÇ ARRAYLEN µéͧà»ç¹ª×èͧ͢ÍÒàÃÂìID ·ÕèÁÕ ARRAYLEN µéͧà»ç¹¨Ó¹Ç¹àµçÁ¢¹Ò´ 4 亵ìãªé»ÃÐàÀ·ÍÒàÃÂì¡Ñº¤ÓÊÑè§ ARRAYLEN äÁèä´éÃкº¨ÐäÁèãªé ARRAYLEN ·ÕèÁÕÍÒàÃÂì亹´ì¢Í§ SQLäÁèä´é»ÃСÒȵÑÇá»ÃâÎʵìã¹Êèǹ SQL DECLAREµÑÇá»Ãºè§ªÕéµéͧà»ç¹â¤Ã§ÊÃéÒ§ l>mrn©oäp qDr~s±tÍøâ¤Ã§ÊÃéÒ§áÅеÑǺ觪Õé¢Í§âÎʵìµéͧÁըӹǹ¿ÔÅ´ìà·èҡѹ¢¹Ò´ÍÒàÃÂì¢Í§µÑǺ觪ÕéµéͧäÁè¹éÍ¡ÇèÒ¢¹Ò´ÍÒàÃÂì¢Í§âÎʵìãªéÍÒÃì¡ÔÇàÁ¹µì MODE=ANSI ¢Í§ºÃ÷Ѵ¤ÓÊÑ觡Ѻ DBMS=V6 äÁèä´éµéͧ»ÃСÒȵÑÇá»Ãºè§ªÕé¹Õéà»ç¹ type shortª×èͤ͹à·ç¡«ìµÑÇá»ÃâÎʵì EXEC TOOLS äÁèãªè»ÃÐàÀ·µÑÇÍÑ¡Éê×è͵ÑÇá»Ã¾ÍÂàµÍÃì¢Í§âÎʵì EXEC TOOLS äÁèãªè»ÃÐàÀ·¾ÍÂàµÍÃìµÑÇá»ÃâÎʵì EXEC TOOLS MESSAGE äÁèãªè»ÃÐàÀ·µÑÇÍÑ¡ÉÃÊèǹ¢Í§¤ÓÊÑè§ FOR äÁè¶Ù¡µéͧãªéÊèǹ¢Í§¤ÓÊÑè§ FOR 㹤ÓÊÑè§ SELECT äÁèä´é uDvow’x´yäz {2|Y~“¿î¡ÒûÃСÒÈã¹Êèǹ EXEC SQL DECLARE äÁè¶Ù¡µéͧ¤èÒ SQLCHECK ÁÒ¡¡ÇèÒ¤èÒºÃ÷Ѵ¤ÓÊÑè§¾º¤ÓÊÑè§ SQL ¹Í¡à¹×éÍËҢͧ¿Ñ§¡ìªÑ¹¤Ø³»ÃСÒÈ SQLCODE äÁèä´éàÁ×èÍ DEF_SQLCODE = TRUEãªéÍÒàÃÂì¢Í§ varchars ·Õèá¹è¹Í¹äÁèä´é»ÃÐàÀ·µÑÇá»ÃÍÑ¡¢ÃÐÀÒÉÒ»ÃШӪҵÔäÁè¶Ù¡µéͧà·Õº¤èÒµÑÇá»ÃÍÑ¡¢ÃÐÀÒÉÒ»ÃШӪҵÔäÁèä´éÃкØâËÁ´¡ÒÃàª×èÍÁµèÍäÁèä´éàÁ×èÍÁÕ¡ÒÃá¡éä¢ÃËÑʼèÒ¹¢Í§¼Ùéãªé¤Ø³µéͧÃÐºØ MODE=ANSI àÁ×èÍãªé NLS_LOCAL=YES¤Ò´ÇèÒàÍç¡«ìà¾Ãʪѹà»ç¹»ÃÐàÀ· OCIExtProcContext €D�Z‚Žƒ®„×…†H‡hˆ“‰ºâäÁèÁÕ ID ¤ÇÒÁÂÒÇÍÒàÃÂìãªé CHAR_MAP äÁèä´éàÁ×èÍ NLS_CHAR áÅÐ NLS_LOCAL=TRUEãªéÊèǹ¢Í§¤ÓÊÑè§ AT ·Õè¹ÕèäÁèä´éµéͧ¡ÒÃàÍç¡«ìà¾Ãʪѹ sql_cursor ¢Í§»ÃÐàÀ·ãªéÍÒàÃÂìã¹Êèǹ¢Í§¤ÓÊÑè§ FROM/WHERE ¢Í§¤ÓÊÑè§ SELECT äÁèä´éãªéÍÒàÃÂìà»ç¹µÑÇá»Ã亹´ì¢Í§ÍÔ¹¾Øµã¹ÅÔʵì SELECT äÁèä´éäÁ辺¤ÓÊÑè§ EXEC SQL CONTEXT USEµÑÇá»Ã¤Í¹à·ç¡«ìÃѹä·ÁìÁÕ»ÃÐàÀ··ÕèäÁè¶Ù¡µéͧ¤Ø³ÍÂÙèã¹ EXEC SQL DECLARE SECTION áÅéǾº¤ÓÊÑè§ SQL ã¹ EXEC SQL DECLARE SECTION Š>‹`Œ…�¯ŽÔ��S‘}’°ëª×èÍä¿ÅìÍÔ¹¾ØµáÅÐàÍÒµì¾ØµàËÁ×͹¡Ñ¹¡ÒÃãªéÍÒàÃÂìµéͧ¡ÒÃâ¤Ã§ÊÃéÒ§·ÕèÁÕª×èÍ¡ÒÃãªéÍÒàÃÂìã¹ÍÒàÃÂì¢Í§â¤Ã§ÊÃéÒ§äÁè¶Ù¡µéͧ»ÃСÒÈ VARCHAR ã¹ä¿Åì #include äÁèä´éÃкº¨ÐäÁè»ÃÐÁÇżŵÑǺ觪Õé㹤ÓÊÑè§¹Õé·ÕèÁÕ»ÃÐàÀ·¹Õé¤èÒµÑÇàÅ×Í¡ CHAR_MAP ÊÓËÃѺ DBMS=V6 äÁè¶Ù¡µéͧ Ãкº¨ÐäÁè»ÃÐÁÇżŵÑÇàÅ×Í¡¹Õéµéͧ»ÃСÒȵÑÇá»ÃâÎʵì¹Õéà»ç¹»ÃÐàÀ·¾ÍÂàµÍÃìÂѧãªéÍÒàÃÂìµÑÇá»ÃâÎʵì¢Í§»ÃÐàÀ·¹ÕéäÁèä´é㹻Ѩ¨ØºÑ¹µéͧÁÕ OBJECTS=YES ¢Í§µÑÇàÅ×Í¡ Pro*C àÁ×èÍãªéᤪ¢Í§Íͺਡµì “>”k•––»—ø˜™<š]›‡È»ÃÐàÀ·µÑÇá»Ãºè§ªÕé¢Í§µÑÇá»ÃâÎʵì¹ÕéäÁè¶Ù¡µéͧµéͧ»ÃСÒȵÑÇá»Ãºè§ªÕé¹Õéà»ç¹»ÃÐàÀ·¾ÍÂàµÍÃìµÑÇá»ÃÍÂÙèã¹»ÃÐàÀ··Õè§äÁèä´é¡Ó˹´¤èÒ¤Ò´ÇèÒµéͧÍÂÙèã¹ÃٻẺ 'RETURN[ING] REF INTO :' à·èÒ¹Ñé¹»ÃÐàÀ·ÍͺਡµìáÅÐ REF äÁèµÃ§¡Ñ¹¤Ò´ÇèÒàÍç¡«ìà¾Ãʪѹà»ç¹»ÃÐàÀ·Íͺਡµì¤Ò´ÇèÒàÍç¡«ìà¾Ãʪѹà»ç¹»ÃÐàÀ· REF¤Ò´ÇèÒàÍç¡«ìà¾Ãʪѹà»ç¹»ÃÐàÀ·¡ÒÃà¡çº¢éÍÁÙÅ»ÃÐàÀ·ÊÓËÃѺµÑÇá»ÃâÎʵìÃÒ¡Òà Descriptor ¢Í§ INDICATOR äÁè¶Ù¡µéͧœ8�wžžŸÀ ¡=¢r££áãªéÊèǹ¢Í§¤ÓÊÑè§ FOR 㹤ÓÊÑè§ OBJECT GET ËÃ×Í OBJECT SET äÁèä´é¨Ó¹Ç¹áÍ··ÃÔºÔÇäÁèµÃ§¡Ñº¨Ó¹Ç¹µÑÇá»ÃâÎʵìäÁèÁÕáÍ··ÃÔºÔǹÕéã¹Íͺਡµì·ÕèÃкبѴ¡ÒÃáÍ··ÃÔºÔÇÍͺਡµì㹤ÓÊÑè§ OBJECT GET ËÃ×Í OBJECT SET äÁèä´éÍͺਡµì㹤ÓÊÑè§ OBJECT GET ËÃ×Í OBJECT SET µéͧäÁèãªèÍÒàÃÂì¡ÒÃá»Å§»ÃÐàÀ·ÃÐËÇèÒ§áÍ··ÃÔºÔÇáÅеÑÇá»ÃâÎʵìäÁè¶Ù¡µéͧ¢¹Ò´ÍÒàÃÂì¢Í§µÑÇá»ÃâÎʵìÍͺਡµìáÅÐ REF äÁèµÃ§¡Ñ¹ãªéÍÒàÃÂìµÑÇá»ÃâÎʵì㹤ÓÊÑè§ OBJECT SET ËÃ×Í OBJECT GET äÁèä´é ¤J¥n¦’§Ã¨ó©ª7«K¬y­ž®Åó¢éÍ¡Ó˹´»ÃÐàÀ·äÁèÊÁºÙóì (ËÃ×ÍäÁèÁÕ)µÑÇá»ÃâÎʵì¹Õéµéͧ¡ÒÃãªéµÑÇá»Ãºè§ªÕé¤èÒ·ÕèÃкØãËé¡ÑºµÑÇàÅ×Í¡¤Í¹à·ç¡«ì·ÕèãËéäÁè¶Ù¡µéͧµÑÇá»ÃâÎʵìÁÕ»ÃÐàÀ··Õèãªé¡Ñº¤èÒµÑÇàÅ×Í¡¹ÕéäÁèä´é¨Ó¹Ç¹¤èÒáÅеÑÇá»ÃâÎʵìäÁèµÃ§¡Ñ¹äÁèµéͧãªéµÑÇá»Ãºè§ªÕé¡ÑºáÍ··ÃÔºÔǹÕéãªé»ÃÐàÀ· LOB äÁèä´éàÍç¡«ìà¾ÃʪѹäÁèãªè»ÃÐàÀ·ÊµÃÔ§ÍÑ¡¢ÃзÕè¶Ù¡µéͧ»ÃÐàÀ·ºÑ¿à¿ÍÃìãªé¡Ñº»ÃÐàÀ· LOB äÁèä´é¤Ò´ÇèÒàÍç¡«ìà¾Ãʪѹà»ç¹»ÃÐàÀ· LOB ÀÒÂ㹤ҴÇèÒàÍç¡«ìà¾Ãʪѹà»ç¹»ÃÐàÀ· LOB ·ÕèäÁèà¨ÒШ§ ¯>°m±•²¹³á´µF¶u·œΤҴÇèÒàÍç¡«ìà¾Ãʪѹà»ç¹»ÃÐàÀ· LOB (BFILE) ÀÒÂã¹à»Ô´ LOB (BFILE) ÀÒ¹͡ã¹âËÁ´ READ WRITE¤ÙèµÑÇá»ÃâÎʵìáÅÐáÍ··ÃÔºÔÇäÁè¶Ù¡µéͧãªéÊèǹ¢Í§¤ÓÊÑè§ FOR 㹤ÓÊÑè§ LOB äÁèä´éáÍ··ÃÔºÔǹÕéãªé¡Ñº»ÃÐàÀ· LOB ÀÒÂã¹ä´éà·èÒ¹Ñé¹áÍ··ÃÔºÔǹÕéãªé¡Ñº»ÃÐàÀ· LOB ÀÒ¹͡ (BFILEs) ä´éà·èÒ¹Ñ鹤ҴÇèÒàÍç¡«ìà¾Ãʪѹà»ç¹»ÃÐàÀ·¨Ó¹Ç¹àµçÁẺ亹ÒÃÕãªéÍÒàÃÂì¢Í§Íͺਡµì¡ÒÃà¡çº¢éÍÁÙÅäÁèä´éãªéÊèǹ¢Í§¤ÓÊÑè§ FOR 㹤ÓÊÑè§ COLLECTION ¹ÕéäÁèä´é ¸>¹oº–»¶¼á½)¾g¿–ÀÂíáÍ··ÃÔºÔǹÕéãªé¡Ñº LOB ÀÒÂã¹ËÃ×ÍÀÒ¹͡ä´éà·èÒ¹Ñ鹨ӹǹáÍ··ÃÔºÔÇäÁèµÃ§¡Ñº¨Ó¹Ç¹µÑÇá»ÃâÎʵì¤Ò´ÇèÒ¤èÒÍÂÙèÃÐËÇèÒ§ 1 áÅÐ 65535ÇÔ¸Õ¡ÒùÕéãªéä´éàÁ×èÍÃÐºØ DYNAMIC=ANSI áÅéǤèÒ¼ÊÁ¢Í§Êèǹ¢Í§¤ÓÊÑè§·Õèà»ç¹ Descriptor áÅÐäÁèãªè Descriptor äÁè¶Ù¡µéͧãªéÊèǹ¢Í§¤ÓÊÑè§ USING ä´é¡Ñº¤ÓÊÑè§áººä´¹ÒÁÔ¤ PREPARE à·èÒ¹Ñé¹ãªéÊèǹ¢Í§¤ÓÊÑè§ FOR 㹤ÓÊÑè§ DEALLOCATE äÁèä´éÃкØÍÍ¿à«çµ»ÅÒ·ҧ㹠LOB WRITE APPEND äÁèä´éÃкصÑÇá»Ã UCS2 ã¹µÑÇàÅ×Í¡ NLS_NCHAR äÁèä´é Á>ÂXÀIJÅæÆ,ÇfÈžÉÀáà·Õº¤èÒ»ÃÐàÀ· UCS2 äÁèä´éäÁèä´é»ÃСÒÈà¤ÍÃìà«ÍÃìã¹âËÁ´·ÕèàÅ×è͹ä´é¤èÒÍÍ¿à«çµã¹âËÁ´¡ÒèѴÇÒ§ ABSOLUTE à»ç¹¤èÒźäÁèä´éCommon SQL Front End ¾º¢éͼԴ¾ÅÒ´à¡ÕèÂǡѺÃٻẺÀÒÉÒµéͧãªéµÑÇàÅ×Í¡ SQLCHECK=SEMANTICS(FULL) àÁ×èÍÁÕ¡ÒÃãªéµÑÇàÅ×Í¡ OUTLINEµéͧãªéµÑÇàÅ×Í¡ OUTLINE àÁ×èÍÁÕ¡ÒÃãªéµÑÇàÅ×Í¡ OUTLINPREFIXµéͧãªéµÑÇàÅ×Í¡ OUTLINE àÁ×èÍÁÕ¡ÒÃãªéµÑÇàÅ×Í¡ RUNOUTLINEäÁèÊÒÁÒöà»Ô´ä¿Åì SQL ¢Í§àÍÒµìäŹìäÁèÊÒÁÒöà»Ô´ÅçÍ¡ä¿Åì¢Í§àÍÒµìäŹìÊËHÌby¤ÇÒÁÂÒǢͧª×èÍàÍÒµìäŹìà¡Ô¹¢Õ´¨Ó¡Ñ´·Õè¡Ó˹´äÇé¨Ó¹Ç¹àÍÒµìäŹìà¡Ô¹¢Õ´¨Ó¡Ñ´äÁèÊÒÁÒöÊÃéÒ§àÍÒµìäŹìÿÿÿÿ