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

SQL Server 2005 のテーブルに xml データを挿入する方法

    XML サンプルを上記のように仮定します:

    <Record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Emp>
            <ID>3</ID>
            <EmpName>Dibyendu</EmpName>
            <Sal>3500</Sal>
        </Emp>
    </Record>
    

    次の表を想定:

    CREATE TABLE Employee
    (
        [ID] [int] NOT NULL,  
        [EmpName] varchar(max) NOT NULL,   
        [Sal] [int] NULL
    )
    

    xpaths を使用する次のストアド プロシージャは、トリックを実行する必要があります

    CREATE PROCEDURE AddEmployee
        @empXml xml
    AS
    
    INSERT INTO Employee
    (
        ID,
        EmpName,
        Sal
    )
    VALUES
    (
        @empXml.value('(/Record/Emp/ID)[1]', 'int'),
        @empXml.value('(/Record/Emp/EmpName)[1]', 'varchar(max)'),
        @empXml.value('(/Record/Emp/Sal)[1]', 'int')
    )
    

    その後、次のコマンドで実行できます:

    exec AddEmployee '<Record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Emp><ID>3</ID><EmpName>Dibyendu</EmpName><Sal>3500</Sal></Emp></Record>' 
    

    Record XML に複数の「Emp」要素が含まれる可能性がある場合は、少しリファクタリングする必要があります。



    1. 通常の画像保存またはmySQLblob?

    2. 列をt-sqlの値のリストと比較する

    3. mysqlfind_in_setでコンマを見つける方法

    4. OracleDBMS_LOBの問題を解決する方法