java.sql.Blobインターフェイス�java.sql.Clobインターフェイス�対応

JDBC 2.0��java.sql.Blob�SQL�BLOB(binary large object)型�対応���java.sql.Clob�SQL�CLOB(character large object)型�対応���。

java.sql.Blobã?¨java.sql.Clobã?¯æƒ…å ±(large object)全体ã?§ã?¯ã?ªã??ã€?ã??れã?¸ã?®è«–ç?†çš„ã?ªãƒ?インタを表ã?—ã?¾ã?™ã€‚Derbyã?§ã?¯ä¸€æ™‚ã?«å”¯ä¸€ã?¤ã?®ãƒ‡ãƒ¼ã‚¿ãƒšãƒ¼ã‚¸ã? ã?‘ã?Œãƒ¡ãƒ¢ãƒªä¸Šã?§å‡¦ç?†ã?•れã?¾ã?™ã€‚BLOBã?®æƒ…å ±ã?®æœ€åˆ?ã?®æ•°ãƒ?イトを読ã?¿æ›¸ã??ã?™ã‚‹ã?®ã?«ã€?LOB全体ã?Œå‡¦ç?†ã?•れる必è¦?ã?¯ã?‚りã?¾ã?›ã‚“。

ç?¾åœ¨ã?®Derbyã?«çµ„ã?¿è¾¼ã?¾ã‚Œã?Ÿåž‹ã?«ã?¯ã€?BLOBã?¨CLOBã?Œç”¨æ„?ã?•れã?¦ã?„ã?¾ã?™ã€‚ ã?¾ã?ŸDerbyã?¯ã?“れらã?®ãƒ‡ãƒ¼ã‚¿åž‹ã?«å¯¾ã?—ã?¦ä»¥ä¸‹ã?®æ©Ÿèƒ½ã‚’æ??ä¾›ã?—ã?¾ã?™ã€‚
java.sql.Blob�java.sql.Clob�機能を使���以下�よ�����。
  • 情報をSQLã?®BLOBåž‹ã?§è¨˜éŒ²ã?—ã?¾ã?™ã€‚LONG VARCHAR FOR BIT DATAã€?BINARYã?Šã‚ˆã?³VARCHAR FOR BIT DATAåž‹ã?§ã‚‚å?¯èƒ½ã?§ã?™ã€‚
  • 情報をSQLã?®CLOBåž‹ã?§è¨˜éŒ²ã?—ã?¾ã?™ã€‚LONG VARCHARã€?CHARã?Šã‚ˆã?³VARCHARåž‹ã?§ã‚‚å?¯èƒ½ã?§ã?™ã€‚
  • java.sql.ResultSetインターフェイスã?®getBlobã?‚ã‚‹ã?„ã?¯getClobメソッドを使ã?£ã?¦ã€?å?‚ç…§ã?•れる情報を扱ã?†BLOBã‚„CLOBã‚’å?–å¾—ã?—ã?¾ã?™ã€‚
  • LOBã?®åˆ—ã?«å¯¾ã?—ã?¦é?™çš„ã?ªãƒ¡ã‚½ãƒƒãƒ‰ã‚’呼ã?¶ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。

加��文字列�BLOB�間�型変�を行����推奨�れ��ん。���ら型変��プラットフォーム・データベース��存�る�ら��。

Derbyã?¯ãƒ¦ãƒ‹ã‚³ãƒ¼ãƒ‰æ–‡å­—列(1文字2ãƒ?イト)を使ã?„ã?¾ã?™ã?Œã€?ä»–ã?®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹è£½å“?ã?¯ASCII文字(1文字ã?‚ã?Ÿã‚Š1ãƒ?イト)を使ã?†ã?‹ã‚‚ã?—れã?¾ã?›ã‚“。使ã‚?れる文字コードã?®ç¨®é¡žã?«ã‚ˆã?£ã?¦ã?¯ä¸€æ–‡å­—ã?Œæ•°ãƒ?イトを必è¦?ã?¨ã?™ã‚‹ã?“ã?¨ã‚‚考ã?ˆã‚‰ã‚Œã?¾ã?™ã€‚文字列を記録ã?™ã‚‹ç‚ºã?«ã€?Derbyã?§ã?¯ä»–より大ã??ã?ªBLOBã?®åž‹ã‚’å¿…è¦?ã?¨ã?™ã‚‹å ´å?ˆã?Œã?‚りã?¾ã?™ã€‚ 文字列を記録ã?™ã‚‹å ´å?ˆã?¯CLOB型を利用ã?™ã‚‹ã?¹ã??ã?§ã?™ã€‚

BLOB�CLOB�(LOB型)�制約
  • LOBåž‹ã?¯ç­‰å?·(=)ã‚„ä¸?ç­‰å?·(!=ã€? <>. ã?§æ¯”較ã?§ã??ã?¾ã?›ã‚“。
  • LOBåž‹ã?§é †åº?付ã?‘ã‚‹ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。ã?¾ã?Ÿ<ã€? <=ã€? >ã€? >=ã?«ã‚ˆã‚‹æ¯”較もä¸?å?¯èƒ½ã?§ã?™ã€‚
  • LOBåž‹ã?¸ã?®ç´¢å¼•ã‚„LOBåž‹ã?®ä¸»ã‚­ãƒ¼åˆ—ã?¯ä¸?å?¯èƒ½ã?§ã?™ã€‚
  • LOBåž‹ã?«ã?¤ã?„ã?¦ã€?DISTINCTã€?GROUP BYã€?ORDER BY節ã?¯åˆ©ç”¨ã?§ã??ã?¾ã?›ã‚“。
  • ä»–ã?®åŸºæœ¬åž‹ã?¨é?•ã?„ã€?LOBåž‹ã?§ã?¯æš—é»™ã?®åž‹å¤‰æ?›ã‚’行ã?ˆã?¾ã?›ã‚“。

Derby���CallableStatement�set�よ�getメソッドを除���以下�JDBC 2.0�インターフェイス�メソッド�実装�れ����。

推奨事項: java.sql.Blobã?¨java.sql.Clobã?®ç”Ÿå­˜æœŸé–“ã?¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã?Œã‚³ãƒŸãƒƒãƒˆã?•れるã?¨ã??終了ã?™ã‚‹ã?®ã?§ã€?java.sql.Blobã?Šã‚ˆã?³java.sql.Clobを利用ã?™ã‚‹ã?¨ã??ã?¯è‡ªå‹•コミットを切ã?£ã?¦ä¸‹ã?•ã?„。

表 1. æ??ä¾›ã?•れるJDBC 2.0 java.sql.Blobã?®ãƒ¡ã‚½ãƒƒãƒ‰
返り値 シグ��ャ 実装�覚書
InputStream getBinaryStream()  
byte[] getBytes(long pos, int length) pos < 1ã? ã?£ã?Ÿã‚Šã€?posã?Œlengthより大ã??ã?‹ã?£ã?Ÿã‚Šã€?length <= 0ã?§ã?‚ã?£ã?Ÿå ´å?ˆã€?例外ã?Œç™ºç”Ÿã?—ã?¾ã?™ã€‚
long length()  
long position(byte[] pattern, long start) pattern == null����り�start < 1����り�pattern��列長�0����場��例外�発生���。
long position(Blob pattern, long start) pattern == nullã? ã?£ã?Ÿã‚Šã€?start < 1ã? ã?£ã?Ÿã‚Šã€?patternã?®é•·ã?•ã?Œ0ã?§ã?‚ã?£ã?Ÿã‚Šã€?patternã?®æœ€åˆ?ã?®æ•°ãƒ?イトを読むã?¨ã??例外ã?Œèµ·ã??ã‚‹ã?¨ã€?例外ã?Œç™ºç”Ÿã?—ã?¾ã?™ã€‚
表 2. æ??ä¾›ã?•れるJDBC 2.0 java.sql.Clob ã?®ãƒ¡ã‚½ãƒƒãƒ‰
返り値 シグ��ャ 実装上�覚書
InputStream getAsciiStream()  
Reader getCharacterStream()  
String getSubString(long pos, int length) pos < 1ã? ã?£ã?Ÿã‚Šã€?posã?Œ Clobã?®é•·ã?•より大ã??ã?‹ã?£ã?Ÿã‚Šã€?length <= 0ã?§ã?‚ã?£ã?Ÿå ´å?ˆã€?例外ã?Œç™ºç”Ÿã?—ã?¾ã?™ã€‚
long length()  
long position(Clob searchstr, long start) searchStr == nullã? ã?£ã?Ÿã‚Šstart < 1ã? ã?£ã?Ÿã‚Šã€?searchStr ã?®é•·ã?•ã?Œ0ã? ã?£ã?Ÿã‚Šã€?searchStrã?®æœ€åˆ?ã?®æ•°ãƒ?イトを読むã?¨ã??例外ã?Œèµ·ã??ã‚‹ã?¨ã€?例外ã?Œç™ºç”Ÿã?—ã?¾ã?™ã€‚
long position(String searchstr, long start) searchStr == null���り�start < 1���り�pattern�空文字列����場��例外�発生���。