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

TSQL ストアド プロシージャからの SOAP Web サービスの呼び出し

    過去に私は次の方法を使用しました。最近では最良の方法ではないかもしれませんが、私にとってはうまくいきました:

    DECLARE @obj int,
            @url VarChar(MAX),
            @response VarChar(MAX),
            @requestHeader VarChar(MAX),
            @requestBody VarChar(MAX)
    
    SET @url = 'http://....'
    
    SET @requestBody = '<soapenv:Envelope>
                         <soapenv:Header/>
                          <soapenv:Body>
                           ...
                          </soapenv:Body>
                         </soapenv:Envelope>'
    
    EXEC sp_OACreate 'MSXML2.ServerXMLHttp', @obj OUT
    EXEC sp_OAMethod @obj, 'Open', NULL, 'GET', @url, false
    EXEC sp_OAMethod @obj, 'setRequestHeader', NULL, 'Content-Type', 'text/xml;charset=UTF-8'
    EXEC sp_OAMethod @obj, 'setRequestHeader', NULL, 'SOAPAction', 'POST'
    EXEC sp_OAMethod @obj, 'setRequestHeader', NULL, 'Content-Length', LEN(@requestBody)
    EXEC sp_OAMethod @obj, 'send', NULL, @requestBody
    EXEC sp_OAGetProperty @obj, 'responseText', @response OUT
    
    
    SELECT @response [RESPONSE]
    
    EXEC sp_OADestroy @obj
    

    これを使用して、レポートを作成し、メソッド内で電子メールで送信する Web サービスを呼び出しました。



    1. 月をテキストに変換しながら並べ替える

    2. データベースで生成された GUID と日時を EF4 で使用する

    3. PDOをOracleデータベースに接続する

    4. TSQL 2005、XML DML - 2 つの値を一度に更新しますか?