sql >> データベース >  >> RDS >> Oracle

XMLからのデータのクエリ

    Oracleセットアップ

    CREATE TABLE data ( xml XMLType );
    
    DECLARE
      xmlString CLOB := '<?xml version="1.0" encoding="Shift-JIS" ?>
    <Ophthalmology xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:nsCommon="http://www.joia.or.jp/standardized/namespaces/Common" xmlns:nsREF="http://www.joia.or.jp/standardized/namespaces/REF" xsi:schemaLocation="http://www.joia.or.jp/standardized/namespaces/Common Common_schema.xsd http://www.joia.or.jp/standardized/namespaces/REF REF_schema.xsd">
        <nsCommon:Common>
            <nsCommon:Company>TOPCON</nsCommon:Company>
            <nsCommon:ModelName>KR-800</nsCommon:ModelName>
            <nsCommon:MachineNo>01</nsCommon:MachineNo>
            <nsCommon:ROMVersion>1.05.08</nsCommon:ROMVersion>
            <nsCommon:Version>1.2</nsCommon:Version>
            <nsCommon:Date>2016-09-17</nsCommon:Date>
            <nsCommon:Time>01:17:35</nsCommon:Time>
            <nsCommon:Patient>
                <nsCommon:No.>0006</nsCommon:No.>
                <nsCommon:ID>0006</nsCommon:ID>
                <nsCommon:FirstName></nsCommon:FirstName>
                <nsCommon:MiddleName></nsCommon:MiddleName>
                <nsCommon:LastName></nsCommon:LastName>
                <nsCommon:Sex></nsCommon:Sex>
                <nsCommon:Age></nsCommon:Age>
                <nsCommon:DOB></nsCommon:DOB>
                <nsCommon:NameJ1></nsCommon:NameJ1>
                <nsCommon:NameJ2></nsCommon:NameJ2>
            </nsCommon:Patient>
            <nsCommon:Operator>
                <nsCommon:No.></nsCommon:No.>
                <nsCommon:ID></nsCommon:ID>
            </nsCommon:Operator>
        </nsCommon:Common>
        <nsREF:Measure type="REF">
            <nsREF:VD unit="mm">13.75</nsREF:VD>
            <nsREF:DiopterStep unit="D">0.25</nsREF:DiopterStep>
            <nsREF:AxisStep unit="deg">1</nsREF:AxisStep>
            <nsREF:CylinderMode>-</nsREF:CylinderMode>
            <nsREF:REF>
                <nsREF:R>
                    <nsREF:List No="1">
                        <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                        <nsREF:Cylinder unit="D">-1.25</nsREF:Cylinder>
                        <nsREF:Axis unit="deg">178</nsREF:Axis>
                        <nsREF:SE unit="D">-0.25</nsREF:SE>
                        <nsREF:CataractMode></nsREF:CataractMode>
                        <nsREF:IOLMode></nsREF:IOLMode>
                        <nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
                    </nsREF:List>
                    <nsREF:List No="2">
                        <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                        <nsREF:Cylinder unit="D">-1.00</nsREF:Cylinder>
                        <nsREF:Axis unit="deg">177</nsREF:Axis>
                        <nsREF:SE unit="D">0.00</nsREF:SE>
                        <nsREF:CataractMode></nsREF:CataractMode>
                        <nsREF:IOLMode></nsREF:IOLMode>
                        <nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
                    </nsREF:List>
                    <nsREF:Median>
                        <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                        <nsREF:Cylinder unit="D">-1.00</nsREF:Cylinder>
                        <nsREF:Axis unit="deg">177</nsREF:Axis>
                        <nsREF:SE unit="D">0.00</nsREF:SE>
                    </nsREF:Median>
                </nsREF:R>
                <nsREF:L>
                    <nsREF:List No="1">
                        <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                        <nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
                        <nsREF:Axis unit="deg">179</nsREF:Axis>
                        <nsREF:SE unit="D">0.25</nsREF:SE>
                        <nsREF:CataractMode></nsREF:CataractMode>
                        <nsREF:IOLMode></nsREF:IOLMode>
                        <nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
                    </nsREF:List>
                    <nsREF:List No="2">
                        <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                        <nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
                        <nsREF:Axis unit="deg">179</nsREF:Axis>
                        <nsREF:SE unit="D">0.25</nsREF:SE>
                        <nsREF:CataractMode></nsREF:CataractMode>
                        <nsREF:IOLMode></nsREF:IOLMode>
                        <nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
                    </nsREF:List>
                    <nsREF:List No="3">
                        <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                        <nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
                        <nsREF:Axis unit="deg">179</nsREF:Axis>
                        <nsREF:SE unit="D">0.25</nsREF:SE>
                        <nsREF:CataractMode></nsREF:CataractMode>
                        <nsREF:IOLMode></nsREF:IOLMode>
                        <nsREF:ConfidenceIndex></nsREF:ConfidenceIndex>
                    </nsREF:List>
                    <nsREF:Median>
                        <nsREF:Sphere unit="D">0.50</nsREF:Sphere>
                        <nsREF:Cylinder unit="D">-0.50</nsREF:Cylinder>
                        <nsREF:Axis unit="deg">179</nsREF:Axis>
                        <nsREF:SE unit="D">0.25</nsREF:SE>
                    </nsREF:Median>
                </nsREF:L>
            </nsREF:REF>
            <nsREF:PD>
                <nsREF:WorkingDistance unit="cm"></nsREF:WorkingDistance>
                <nsREF:Distance unit="mm">68.50</nsREF:Distance>
                <nsREF:Near unit="mm">68.50</nsREF:Near>
            </nsREF:PD>
        </nsREF:Measure>
    </Ophthalmology>';
    BEGIN
      INSERT INTO DATA ( xml ) VALUES ( XMLType( xmlString ) );
    END;
    /
    
    COMMIT;
    

    クエリ

    SELECT x.*
    FROM Data d,
         XMLTABLE (
           XMLNAMESPACES(
             'http://www.joia.or.jp/standardized/namespaces/Common' AS "nsCommon",
             'http://www.joia.or.jp/standardized/namespaces/REF' AS "nsREF"
           ),
           '//Ophthalmology/nsREF:Measure/nsREF:REF/nsREF:R/nsREF:Median'
           PASSING d.xml
           COLUMNS RSphere   NUMBER(5,2) PATH '//nsREF:Sphere',
                   RCylinder NUMBER(5,2) PATH '//nsREF:Cylinder',
                   RAxis     NUMBER(5,2) PATH '//nsREF:Axis',
                   RSE       NUMBER(5,2) PATH '//nsREF:SE'
         ) x;
    

    出力

       RSPHERE  RCYLINDER      RAXIS        RSE
    ---------- ---------- ---------- ----------
            .5         -1        177          0 
    



    1. WindowsにMySQLをインストールする方法

    2. 19.3PDBクローズORA-65107ORA-16078

    3. SQLServerの重複キー更新に関するMySQLと同等

    4. いつアップデートロックとロック解除を選択しますか?