XMLSERIALIZEã?¯XMLåž‹ã?®æƒ…å ±ã‚’æ–‡å—åž‹ã?®æƒ…å ±ã?«å¤‰æ?›ã?™ã‚‹SQL/XML演算å?ã?§ã?™ã€‚ã?“れã?¯Derby XML値を変æ?›ã?™ã‚‹å”¯ä¸€ã?®æ–¹æ³•ã?§ã?™ã€‚
INSERT INTO x_table (id, xcol) VALUES (3, XMLPARSE(DOCUMENT '[xString]' PRESERVE WHITESPACE)); SELECT id, XMLSERIALIZE(xcol AS VARCHAR(100)) FROM x_table WHERE id = 3;
ã?“ã?®ã?¨ã??XMLSERIALIZE演算å?ã?®çµ?æžœã?Œã€?å…ƒã?®[xString]ã?®å€¤ã?¨å?Œã?˜ã?§ã?‚ã‚‹ä¿?éšœã?¯ã?‚りã?¾ã?›ã‚“。 XMLSERIALIZEã?®å‡¦ç?†ã?«ã?¦SQL/XMLã?®ä»•様ã?«æ²¿ã?£ã?¦ä½•らã?‹ã?®å¤‰æ›´ã?Œèµ·ã??ã‚‹å?¯èƒ½æ€§ã?Œã?‚りã?¾ã?™ã€‚ XMLSERIALIZEã?®çµ?æžœã?Œå…ƒã?®æ–‡å—表ç?¾ã?¨å?Œã?˜ã?§ã?‚ã‚‹ã?“ã?¨ã‚‚ã?‚りã?¾ã?™ã?Œã€?å?Œã?˜ã?§ã?‚ã‚‹ã?“ã?¨ã?¯ä¿?éšœã?•れã?¾ã?›ã‚“。
å•?å?ˆã?›ã?®æœ€ä¸Šä½?ã?®çµ?果セットã?«XMLSERIALIZE演算å?ã?Œæ›¸ã?‹ã‚Œã?Ÿå ´å?ˆã€?XMLSERIALIZEã?«ã?¦æ–‡å—æƒ…å ±åž‹å¼•æ•°ã?§æŒ‡å®šã?—ã?Ÿåž‹ã?«é?©ç”¨ã?§ã??ã‚‹JDBCã?®å…¨ã?¦ã?®getXXXメソッドã?«ã‚ˆã?£ã?¦çµ?果を得るã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚XMLSERIALIZE演算å?を使ã‚?ã?šã?«XMLã?®å€¤ã‚’最上ä½?ã?®çµ?果セットã?§å?–å¾—ã?—よã?†ã?¨ã?™ã‚‹ã?¨ã€?Derbyã?¯ã‚¨ãƒ©ãƒ¼ã‚’挙ã?’ã?¾ã?™ã€‚ Derbyã?¯XML値を暗黙裡ã?«ç›´åˆ—化ã?—ã?¾ã?›ã‚“。
XMLSERIALIZE ( xml値å¼? AS æ–‡å—æƒ…å ±åž‹ )
SELECT ID, XMLSERIALIZE( xcol AS CLOB) FROM x_tableJDBCを使ã?£ã?¦ã?“ã?®çµ?果をå?–り出ã?™ã?Ÿã‚?ã?«ã?¯ã€?JDBCã?®getCharacterStream()ã‚„getString()メソッドを使ã?†ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚
SELECT ID, XMLSERIALIZE( XMLQUERY('//student[@age>20]' PASSING BY REF xcol EMPTY ON EMPTY) AS VARCHAR(50)) FROM x_table
Derbyã?«ã?¦XML機能ã?Œå‹•作ã?™ã‚‹ã?«ã?¯ã€?Apache Xercesã?®ã‚ˆã?†ã?ªJAXP構文解æž?器ã?¨Apache Xalanã?ŒJavaã?®ã‚¯ãƒ©ã‚¹ãƒ‘スã?«è¨˜è¿°ã?•れã?¦ã?„ã‚‹å¿…è¦?ã?Œã?‚りã?¾ã?™ã€‚クラスパスã?«è¨˜è¿°ã?Œã?ªã?‹ã?£ã?Ÿå ´å?ˆã€?XMLSERIALIZEを使ã?£ã?Ÿã?¨ã??ã?«ã‚¨ãƒ©ãƒ¼ã?Œç™ºç”Ÿã?—ã?¾ã?™ã€‚