BLOBÀ¸·Î µ¥ÀÌÅͺ£À̽º Å×À̺íÀ̳ª ¼¹ö ÆÄÀÏ¿¡ À̹ÌÁö, ¿Àµð¿À ¶Ç´Â ºñµð¿À ¿ÀºêÁ§Æ®¸¦ ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼¹ö ÆÄÀÏ¿¡ ¿ÀºêÁ§Æ®¸¦ ÀúÀåÇÑ´Ù¸é, µ¥ÀÌÅͺ£À̽º´Â ÆÄÀÏÀ» Áö½ÃÇÕ´Ï´Ù.
Ŭ¶óÀÌ¾ðÆ® ¹öÆÛ ¶Ç´Â Ŭ¶óÀÌ¾ðÆ® ÆÄÀÏ¿¡ ¿ÀºêÁ§Æ®¸¦ ÀúÀåÇÒ ¶§, target_file ¸Å°³º¯¼ö¿¡ ÁöÁ¤ÇÑ °ÍÀÇ °á°ú·Î BLOB ¶Ç´Â ¼¹ö ÆÄÀÏ ÀúÀåÀ» Ç¥½ÃÇÕ´Ï´Ù. ÆÄÀÏ À̸§À» ÁöÁ¤ÇÑ´Ù¸é, ¼¹ö ÆÄÀÏ¿¡ ¿ÀºêÁ§Æ®¸¦ ÀúÀåÇÏ·Á´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. ³Î(NULL) °ª ¶Ç´Â ºó ¹®ÀÚ¿À» ÁöÁ¤ÇÏ´Â °æ¿ì, ÀÌ´Â ¿ÀºêÁ§Æ®¸¦ µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ BLOBÀ¸·Î ÀúÀåÇÏ·Á´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. target_file ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍ À¯ÇüÀº LONG VARCHARÀÔ´Ï´Ù. ³Î(NULL) °ªÀ» ÁöÁ¤ÇÏ´Â °æ¿ì, ±×°ÍÀ» LONG VARCHAR µ¥ÀÌÅÍ À¯Çü¿¡ Á¦°øÇØ¾ß ÇÔÀ» ±â¾ïÇϽʽÿÀ.
¿¹¸¦ µé¾î, C ÀÀ¿ëÇÁ·Î±×·¥¿¡ ÀÖ´Â ´ÙÀ½ ¸í·É¹®Àº À̹ÌÁö°¡ ÀÖ´Â ÇàÀ» µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ ÀúÀåÇÕ´Ï´Ù. À̹ÌÁö ¼Ò½º´Â Ŭ¶óÀÌ¾ðÆ® ¹öÆÛ¿¡ ÀÖ½À´Ï´Ù. À̹ÌÁö´Â ¼¹ö ÆÄÀÏ¿¡ ÀúÀåµË´Ï´Ù. µ¥ÀÌÅͺ£À̽º Å×À̺íÀº ´ÙÀ½°ú °°Àº ¼¹ö ÆÄÀÏÀ» Áö½ÃÇÕ´Ï´Ù.
EXEC SQL BEGIN DECLARE SECTION; SQL TYPE IS BLOB_LOCATOR Img_buf EXEC SQL END DECLARE SECTION; EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2IMAGE( CURRENT SERVER, :Img_buf, 'ASIS', '/employee/images/ajones.bmp', /* store image in server file */ 'Anita''s picture') );
¼¹ö ÆÄÀÏ¿¡ ¿ÀºêÁ§Æ®¸¦ ÀúÀåÇÑ´Ù¸é, ¿ÀºêÁ§Æ®¸¦ BLOBÀ¸·Î µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ ÀúÀåÇÏ´Â »ó¼ö MMDB_STORAGE_TYPE_INTERNALÀ» ÁöÁ¤ÇϽʽÿÀ.
¿ÀºêÁ§Æ®¸¦ ÀúÀåÇÏ°í ±×°ÍÀÇ ³»¿ëÀ» ¼¹ö ÆÄÀÏ¿¡ ³²°ÜµÎ·Á ÇÑ´Ù¸é, »ó¼ö MMDB_STORAGE_TYPE_EXTERNALÀ» ÁöÁ¤ÇϽʽÿÀ. MMDB_STORAGE_TYPE_INTERNALÀº Á¤¼ö°ª 1À» °®°í, MMDB_STORAGE_TYPE_EXTERNALÀº Á¤¼ö°ª 0À» °®½À´Ï´Ù.
¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ C ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ¿Àµð¿À Ŭ¸³Àº ¼¹ö ÆÄÀÏ¿¡ ÀúÀåµË´Ï´Ù. ¼Ò½º ¿Àµð¿À ³»¿ëÀº ÀÌ¹Ì ¼¹ö ÆÄÀÏ¿¡ ÀÖ½À´Ï´Ù. ÀúÀå Á¶ÀÛÀº µ¥ÀÌÅͺ£À̽º ÆÄÀÏ À̸§À» À§Ä¡½Ã۴µ¥, À̰ÍÀº SQL¹®À» ÅëÇØ ÆÄÀÏÀ» ¾×¼¼½º °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.
EXEC SQL BEGIN DECLARE SECTION; long hvStorageType; EXEC SQL END DECLARE SECTION; hvStorageType=MMDB_STORAGE_TYPE_EXTERNAL; EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2AUDIO( CURRENT SERVER, '/employee/sounds/ajones.wav', 'WAVE', :hvStorageType, /* store audio in server file */ 'Anita''s voice') );