SQL 2005ÖÐÓÃXML nodes()º¯ÊýÈ¡´úOPENXML
SQL Server 2005ΪXMLÌṩ±¾µØÖ§³Ö;ÏÖÔÚ¿ÉÒÔÔÚOPENXML½ÚµãÖÐʹÓÃÒ»¸ö´øÓÐnodes()º¯ÊýµÄXML×Ö¶ÎÀàÐͰÑÒ»¸öXMLÎļþת»¯ÎªÒ»¸öÐм¯¡£ÈÃÎÒÃÇÀ´¿´Ò»¸öʹÓÃOPENXMLµÄ¼òµ¥Àý×Ó£¬²¢ÏÔʾÈçºÎ°ÑËüת»¯ÎªÔÚSQL Server 2005ÖÐʹÓÃXML×Ö¶ÎÀàÐͺÍnodes()º¯Êý¡£
¡¡¡¡ÎªÁËʹÎÒÃǵÄÀý×Ó¼òµ¥»¯£¬ÎÒÃǽ«¼ÙÉèÎÒÃÇÐèÒªÖ´ÐÐijÖÖ»ùÓڲɹº¶©µ¥ÁбíµÄ¹ý³Ì£¬¶øÕâ¸ö²É¹º¶©µ¥½«ÔÚÒ»¸öXMLÎļþÖÐÖ¸¶¨¡£¸ÃXMLÎļþÀàËÆÓÚÕâÑù£º
¡¡¡¡ < polist>
¡¡¡¡< po>< ponumber>100< /ponumber>< podate>2008-09-10< /podate>< /po>
¡¡¡¡< po>< ponumber>101< /ponumber>< podate>2008-09-11< /podate>< /po>
¡¡¡¡< /polist>
¡¡¡¡ÎÒÃÇ¿ÉÒÔͨ¹ýÏÂÃæµÄOPENXML°Ñ XMLת»¯ÎªÒ»¸öÐм¯£º
¡¡¡¡ DECLARE @DocHandle int
¡¡¡¡DECLARE @XmlDocument nvarchar(1000)
¡¡¡¡SET @XmlDocument = N''< polist>
¡¡¡¡< po>< ponumber>100< /ponumber>< podate>2008-09-10< /podate>< /po>
¡¡¡¡< po>< ponumber>101< /ponumber>< podate>2008-09-11< /podate>< /po>
¡¡¡¡< /polist>''
¡¡¡¡EXEC sp_xml_preparedocument @DocHandle OUTPUT, @XmlDocument
¡¡¡¡SELECT * from OPENXML (@DocHandle, ''/polist/po'',2)
¡¡¡¡WITH (ponumber nvarchar(10),
¡¡¡¡podate datetime)
¡¡¡¡EXEC sp_xml_removedocument @DocHandle
¡¡¡¡ÏÂÃæÊÇÖ´ÐÐÒÔÉÏ´úÂë¶ÎµÃµ½µÄÐм¯£º
¡¡¡¡
¡¡¡¡Í¼Ò»
¡¡¡¡ÕâÊÇ´ÓÉÏÃæ´úÂë¶ÎµÃµ½µÄÒªµã£º
¡¡¡¡Ê¹ÓÃOPENXMLµÄµÚÒ»²½ÊÇͨ¹ý·ÃÎʸô洢¹ý³Ìsp_xml_preparedocumentÀ´"×¼±¸"XMLÎļþ£¬¸Ã´æ´¢¹ý³Ì½«·µ»ØÒ»¸öÈ·ÈÏ×¼±¸ºÃµÄXMLµÄÕûÊý¡£
¡¡¡¡OPENXMLÊÇÒ»¸öÐм¯ÌṩÕߣ¬ÕâÒâζ×ÅÈç¹ûËüÊÇÒ»ÕÅ±í£¬ÄÇôÄãͬÑù¿ÉÒÔʹÓÃËü¡£±¾ÖÊÉÏËüÊÇÒ»¸ö´øÓвÎÊýµÄº¯Êý£¬ÕâЩ²ÎÊý½«È·¶¨¸Ã´ÓXMLÎļþÖÐÌáȡʲô¡£
¡¡¡¡Ê¹ÓÃOPENXMLµÄ×îºó²½ÖèÊÇͨ¹ý·ÃÎÊ´æ´¢¹ý³Ìsp_xml_removedocumentÀ´"ÊÍ·Å"×¼±¸ºÃµÄXMLÎļþ¡£
ÉÏÃæµÄxml´æ´¢¹ý³ÌʹÓù²Í¬µÄMSXML½âÎö×é¼þ¡£
¡¡¡¡sp_xml_preparedocument´æ´¢¹ý³Ì°Ñ×¼±¸ºÃµÄXMLÎļþ´æ´¢ÔÚSQL ServerµÄÄÚ²¿¸ßËÙ»º´æÖС£·ÃÎÊsp_xml_removedocument´æ´¢¹ý³ÌÊǺÜÓбØÒªµÄ£¬ÕâÊÇΪÁ˰Ñ×¼±¸ºÃµÄXMLÎļþ´Ó¸ßËÙ»º´æÖÐÏû³ý¡£¸ù¾ÝSQL Server 2005Áª»ú°ïÖú£¬Äܹ»ÓÃÓÚSQL ServerµÄ°Ë·ÖÖ®Ò»×ÜÄÚ´æ¿ÉÒÔÓÃÓÚMSX
Ïà¹ØÎĵµ£º
OracleÊý¾Ý¿â
SELECT
*
from
(
SELECT
ROWNUM AS NO_ROW
,row_.*
from
(
SELECT
&nb ......
¹ØÓÚÁ½±í¹ØÁªµÄupdate£¬µ«Óï¾äÔõôд¶¼²»ÕýÈ·£¬ÀÏÊDZ¨´í£¬ÓÚÊÇÐľªÈâÌø£¨¾ÍŲ»Äܼ°Ê±Íê³É²Ù×÷£©È¥²éÁËһϣ¬NND£¬ÔÀ´°ÑSQLд³ÉÁËÔÚSQL ServerÏÂÃæµÄÌØÓÐÐÎʽ£¬ÕâÖÖÓï·¨ÔÚOracleÏÂÃæÊÇÐв»Í¨µÄ£¬¼±Ã¦¸Ä»ØÀ´£¬¼°Ê±Íê³ÉÁËÈÎÎñ¡£Ë³±ãÒ²°Ñ²éµ½µÄSQLÌû³öÀ´£¬ÄÄÌìÔÙÍü¼ÇÁË£¬Ò²ºÃÔÚÕâÀïÕÒ»ØÀ´£º
update customers a ......
If XML data in the table is less than 32K for each record, then you can directly unload the data as char. If XML data exceeds 32K for some records, then you have to unload the common data and the XML data separately. First, create a template for unloading XML into a PDS: TEMPLATE LOBFRV DSN 'AAA. ......
selectÓï¾äÖÐÖ»ÄÜʹÓÃsqlº¯Êý¶Ô×ֶνøÐвÙ×÷£¨Á´½Ósql server£©£¬
select ×Ö¶Î1 from ±í1 where ×Ö¶Î1.IndexOf("ÔÆ")=1;
ÕâÌõÓï¾ä²»¶ÔµÄÔÒòÊÇindexof£¨£©º¯Êý²»ÊÇsqlº¯Êý£¬¸Ä³Ésql¶ÔÓ¦µÄº¯Êý¾Í¿ÉÒÔÁË¡£
left£¨£©ÊÇsqlº¯Êý¡£
select ×Ö¶Î1 from ±í1 where charindex£¨'ÔÆ',×Ö¶Î1£©=1;
×Ö·û´®º¯Êý¶Ô¶þ½øÖÆÊý¾Ý¡¢×Ö·û´®º ......
select name from syscolumns where id in (select id from sysobjects where type = 'u' and name = 'ÏàÓ¦±íÃû')
ÓÃÒÔÉÏsqlÓï¾äÊäÈëÏàÓ¦±íÃû¾Í¿ÉÒԲ鵽±íµÄ×Ö¶ÎÃû£¬¶ÔÓ¦ºÃÊý¾Ý¿â ²éѯÊÇ·ñ´æÔڸñíÓï¾ä
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tb_cost]') and OBJECTPROPER ......