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

SQL XML インポート:XQuery [value()]:) が予期されていました

    あなたはよく似た質問をしました。私は両方から情報を取得し、この実用的な例を作成しました。 「DEFAULT」として宣言する必要がある xmlns-namespace に注意してください:

    XML を簡素化しましたが、アイデアは問題ないはずです...

    DECLARE @allUsers XML=
    '<?xml version="1.0"?>
    <?mso-application progid="Excel.Sheet"?>
    <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
     xmlns:o="urn:schemas-microsoft-com:office:office"
     xmlns:x="urn:schemas-microsoft-com:office:excel"
     xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
     xmlns:html="http://www.w3.org/TR/REC-html40">
     <Worksheet>
     <Table>
       <Row ss:AutoFitHeight="0" ss:Height="30">
        <Cell ss:StyleID="s22"/>
        <Cell ss:StyleID="s24"><Data ss:Type="String">Jane Doe</Data></Cell>
        <Cell ss:StyleID="s24"><Data ss:Type="String">JaneDoe</Data></Cell>
        <Cell ss:StyleID="s24"><Data ss:Type="String">XYZ</Data></Cell>
        <Cell ss:StyleID="s24"><Data ss:Type="String">(555) 555-5555</Data></Cell>
        <Cell ss:StyleID="s22"/>
       </Row>
       </Table>
     </Worksheet>   
    </Workbook>';
    
    ;WITH XMLNAMESPACES ('urn:schemas-microsoft-com:office:spreadsheet' as ss
                         ,DEFAULT 'urn:schemas-microsoft-com:office:spreadsheet')
    SELECT T.X.value('Cell[1]/Data[1]','varchar(max)') AS DontKnow1
          ,T.X.value('Cell[2]/Data[1]','varchar(max)') AS Name
          ,T.X.value('Cell[3]/Data[1]','varchar(max)') AS UserName
          ,T.X.value('Cell[4]/Data[1]','varchar(max)') AS DontKnow2
          ,T.X.value('Cell[5]/Data[1]','varchar(max)') AS Telephone
          ,T.X.value('Cell[6]/Data[1]','varchar(max)') AS DontKnow3
    FROM @allUsers.nodes('/Workbook/Worksheet/Table/Row') as T(X)
      

    1. mysqlは最近のユーザーコメントを検索します

    2. このMYSQLクエリを作成する際に何が間違っていたのか理解できません

    3. java.sql.SQLException:使い果たされた結果セット

    4. 脱出する方法は? (疑問符)RailsでPostgresqlJSONBタイプをクエリする演算子