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

sp_OACreate の制限を回避するには?

    あなたの投稿の件名にもかかわらず、問題は sp_OACreate 自体ではなく、sp_OAMethod にある可能性が高いと思います。

    また、SQLコードからWebにアクセスすることは絶対に避ける必要がありますが、RDBMSを「Webサーフィン」するという考えが気に入らないため、これは私の意見です。 ^^

    sp_OAMethod の制限を回避するには、 msdn .

    コードは次のようになります:

    Declare @Object as Int; 
    Declare @ResponseText as Varchar(8000); 
    Declare @Url as Varchar(MAX);
    
    set @Url = 'http://mysite.ru/cgi-bin/my_xml.cgi'
    
    Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT; 
    Exec sp_OAMethod @Object, 'open', NULL, 'get', @Url, 'false' 
    Exec sp_OAMethod @Object, 'send' 
    --Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT 
    
    INSERT #temptable ( appropriatefield )
    EXEC @Result = sp_OAGetProperty @Obj, 'YourPropertyName' 
    
    Exec sp_OADestroy @Object
    

    このソリューションには、リモート ページによって生成された値を格納するための適切な構造とデータ型を持つ一時テーブルが必要であり、これにより 4k を超えるデータを取得できるはずです。



    1. 単一のMySQLクエリに複雑なロジックを含める

    2. MySQL整数のデフォルト値0

    3. null以外の列をかなり奇妙な方法で数える

    4. テーブル内の重複レコードを削除するには?