使用xquery从XML源将数据加载到Netezza数据库中



我有一个XML格式的源文件,并且有大量的记录。我在下面粘贴了1条记录:

<?xml version='1.0' encoding='UTF-8'?><wd:Report_Data xmlns:wd="urn:com.workday.report/BCF-Termination-Details">
<wd:Report_Entry>
            <wd:Worker>
                    <wd:Associate_ID>997215</wd:Associate_ID>
                    <wd:Total_Base_Pay_Amount>13</wd:Total_Base_Pay_Amount>
                    <wd:Total_Base_Pay_Currency wd:Descriptor="USD"><wd:ID wd:type="WID">9e996ffdd3e14da0ba7275d5400bafd4</wd:ID><wd:ID wd:type="Currency_ID">USD</wd:ID><wd:ID wd:type="Currency_Numeric_Code">840</wd:ID></wd:Total_Base_Pay_Currency>
                    <wd:Length_of_Service_-_Position>0 year(s), 4 month(s), 7 day(s)</wd:Length_of_Service_-_Position>
            </wd:Worker>
            <wd:Time_Type wd:Descriptor="Part time"><wd:ID wd:type="WID">3baf0a7f595210daec53e26fa7476d5b</wd:ID><wd:ID wd:type="Position_Time_Type_ID">Part_time</wd:ID></wd:Time_Type>
            <wd:Hire_Date>2022-05-25-07:00</wd:Hire_Date>
            <wd:Termination_Date>2022-10-02-07:00</wd:Termination_Date>
            <wd:Date_Initiated>2022-10-28T17:39:53.943-07:00</wd:Date_Initiated>
            <wd:Termination_Category>Voluntary</wd:Termination_Category>
            <wd:Termination_Reason>Job Abandonment</wd:Termination_Reason>
            <wd:Length_of_Service_in_Days>130</wd:Length_of_Service_in_Days>
            <wd:workdayID>f415ada264f1100211408522a0e00000</wd:workdayID>
</wd:Report_Entry></wd:Report_Data>

我需要这在ETL实现。使用xml作为源,只需要从xml中提取少量的列并加载到数据库中。我是新的xquery,所以需要知道我们如何开始它。我正在做POC。

如果您想从xml源中提取值,您可以尝试使用SQLEXT工具包中的xml函数,该工具包可以安装在Netezza之上。

下面是一个从xml源获取associate_id的例子。您可以在表中输入提取的值。
select xmlextractvalue(xmlparse(ele_string),'/Report_Entry/Worker/Associate_ID') as associate_id from (select replace(element,'wd:','') as ele_string from t1) as foo;
ASSOCIATE_ID
--------------
 997215
(1 row)

最新更新