转换xml节点字符串以去除节点

时间:2014-05-30 20:29:42

标签: sql xml

我的表有一个名为RAW DATA的{​​{1}}类型的列,它是来自Web服务的转储。以下是1个数据行的示例:

NVARCHAR MAX

假设进入表中,节点名称代表列名。它创建的表格已经创建,我只需要将此行中的数据提取到表格中。我有成千上万的这样的记录。我打算复制到xml文件,然后导入。但是有太多数据,我宁愿尝试在数据库中完成工作。 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

首先,创建包含所有必需列的表。

然后,使用您喜欢的脚本语言加载表格!我的时髦,这就是我要做的事情:

def sql = Sql.newInstance(/* SQL connection here*/)

sql.eachRow("select RAW_DATA from TABLE_NAME") { row ->
    String xmlData = row."RAW_DATA"
    def root = new XmlSlurper().parseText(xmlData)
    def date = root.eventDate
    def histSeqNo = root.histSeqNo
    //Pull out all the data and insert into new table!
}

答案 1 :(得分:0)

我确实找到了答案,我确信不止一种方法可以做到这一点。但这就是我的工作。感谢大家的帮助。

SELECT 
  pref.value('(caseNo/text())[1]', 'varchar(20)') as CaseNumber,
  pref.value('(countyNo/text())[1]', 'int') as CountyNumber


   dbo.CaseHistoryRawData_10交叉申请       RawData.nodes('// CourtRecordEventCaseHist')AS CourtRec(pref)