Проверка SQL-кода на работу с SOAP, проблема с получением данных

Я новичок и пытаюсь получить данные из службы SOAP с помощью SQL-запроса. Сначала я попробовал это на reqbin.com, получил ответ, все работает нормально (см. рисунок). С SQL я не получаю никаких данных. Есть ли у кого-нибудь идеи, как улучшить SQL?

    DECLARE @xmlRequest NVARCHAR(MAX) = 
    '<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/">
        <soapenv:Body>
            <StatusNespolehlivyPlatceRequest xmlns = "http://adis.mfcr.cz/rozhraniCRPDPH/">
                <dic>27396819</dic>
            </StatusNespolehlivyPlatceRequest>
        </soapenv:Body>
    </soapenv:Envelope>';

DECLARE @response INT;
    DECLARE @responseText NVARCHAR(MAX);

    EXEC sp_OACreate 'MSXML2.ServerXMLHTTP', @response OUT;
    EXEC sp_OAMethod @response, 'open', NULL, 'POST', 'https://adisrws.mfcr.cz/dpr/axis2/services/rozhraniCRPDPH.rozhraniCRPDPHSOAP', 'false';
    EXEC sp_OAMethod @response, 'setRequestHeader', NULL, 'Content-Type', 'text/xml; charset=utf-8';
    EXEC sp_OAMethod @response, 'send', NULL, @xmlRequest;
    EXEC sp_OAMethod @response, 'responseText', @responseText OUT;

    -- Debugging: Print the raw response
    PRINT @responseText;

рекбин

Большое спасибо за любой совет!!


Какие СУБД вы используете? (Приведенный выше код на самом деле не является общим SQL.)

jarlh 20.08.2024 11:24

MS SQL Studio, я думаю, версия 19.x

Marcel Lucansky 20.08.2024 11:27

Здравствуйте, я бы порекомендовал вам использовать SQL для запросов к базе данных. А для работы с веб-сервисом выберите обычный язык программирования (c#, java и т.д.).

nik0x1 20.08.2024 12:06

Подобные задачи не являются задачами T-SQL. Объекты OA предназначены для совместимости с древними экземплярами SQL Server (мы говорим о SQL Server 2000). Если вам нужно работать с такими вещами, используйте промежуточное программное обеспечение для взаимодействия как с API, так и с экземпляром SQL Server. То, что вы используете, полностью зависит от вас; PowerShell, SSIS, C#, PHP, Python и т. д. и т. п. Существует множество значительно лучших вариантов.

Thom A 20.08.2024 12:50
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
4
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

sp_oa-procedures не поддерживает nvarchar(max) в качестве параметров. Попробуйте NVARCHAR(4000) для @xmlRequest/@responseText.

Кроме того, не стесняйтесь вообще не использовать процедуры sp_oa, они не рекомендуются, вам следует либо вызывать веб-службы из-за пределов SQL Server, либо использовать для этого CLR или более подходящий код.

Вы можете получить ответ nvarchar(max) с помощью INSERT .. EXEC sp_OAGetProperty . См. stackoverflow.com/questions/53086558/…

David Browne - Microsoft 20.08.2024 15:03

Другие вопросы по теме