Web Services SQL Server Web服务查询字符限制

9gm1akwq  于 2022-11-24  发布在  SQL Server
关注(0)|答案(1)|浏览(132)

我正在编写一个从Web服务获取数据的过程。Web服务以XML字符串的形式提供数据。但是,它会截断从网站提取的数据。在SSMS中执行时,它可以完美运行。在批处理文件中运行时,它会将数据截断为2048个字符,在使用SS作业运行时,它会将数据截断为512个字符。
这些值不可能是随机的。一定有一个设置的地方,但我找不到它。有什么想法?
代码如下:

DECLARE 

    @url nvarchar(max),
    @win integer,
    @hr integer ,
    @Date date,
    @SearchDate nvarchar(50)

    Set @Date = GETDATE()

    set @SearchDate = CAST(@Date as nvarchar(50))

    set @SearchDate = REPLACE(@SearchDate,'-','')

    CREATE TABLE TextData([SEMO_Data] [nvarchar](max) NULL)

    Select @url = 'http://semorep.sem-o.com/DataCollection/DataSets.asmx/queryDatasetXML?DatasetName=SET_CAL&User=primplims@gmail.com&Password=testsemo&FromDate=20130103&ToDate=20130111&P1=Energy&P2=Statements&P3=Initial&P4=&P5='

    EXEC @hr=sp_OACreate 'WinHttp.WinHttpRequest.5.1',@win OUT 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

    EXEC @hr=sp_OAMethod @win, 'Open',NULL,'GET',@url,'false'
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

    EXEC @hr=sp_OAMethod @win,'Send'
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

    INSERT XMLParsing.dbo.TextData(SEMO_Data)
    EXEC @hr=sp_OAGetProperty @win,'ResponseText'
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

    EXEC @hr=sp_OADestroy @win 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

这是我上一个问题的后续。我希望如果我发布一个新的问题,会更容易看到。

3hvapo4f

3hvapo4f1#

我知道已经太晚了,2022年,但我今天遇到了同样的问题,这为我解决了:
https://stackoverflow.com/a/38918970/1750527
剧透:在SSMS外部运行的查询的默认文本大小为2048。

SET TEXTSIZE 2147483647;

这样它才能正常运行。

相关问题