Ошибка SQL0204 - не найден HTTPCLOB в типе SYSTOOOLS * N - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь использовать функцию HTTPCLOB для выдачи POST-запроса веб-службе, но когда я запускаю программу, я получаю сообщение об ошибке, как в заголовке, независимо от моих попыток сопоставить тип полей моего SQL заявление для тех функции. Вот D-спецификации:

D url             s           1024a   varying             
D httpHeader      s           1024a   varying inz         
D requestMsg      s          32000a   varying inz         
D resHttpHeader   s          32000a   varying inz         
D resMsg          s          32000a   varying inz         

Это оператор SQL:

url = 'https://labelservice.gls-italy.com/AddParcel';          
requestMsg = 'XMLInfoParcel: ' + xmlData;                      
httpHeader = 'Content-Type: application/x-www-form-urlencoded;'
           + ' Content-Length: ' + %char(%len(requestMsg))     
           ;                                                   
exec sql                                         
  select cast(responseMsg as clob(2G))           
  //   , cast(responseHttpHeader as varchar(512))
  into :resMsg                                   
  // , :resHttpHeader                            
  from table(systoools.HTTPCLOB(                 
          URL => cast(:url                       
                 as varchar(2048)),              
          HTTPMETHOD => 'POST',                  
          HTTPHEADER => cast(:httpHeader         
                 as clob(10K)),                  
          REQUESTMSG => cast(:requestMsg         
                 as clob(2G))                    
             )                                   
       ) as httpRequest                          
;                                                

, где xmlData - это xml -вариант с некоторым содержанием в нем. Я предполагаю, что могут быть другие ошибки, потому что это моя первая попытка использования этой функции. В любом случае, что касается документации IBM, здесь https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzajq/rzajqudfhttpclob.htm типы переменных совпадают. Что я делаю не так?

Ответы [ 3 ]

1 голос
/ 18 февраля 2020

Итак, первая ошибка была опечаткой, затем, когда функция используется в качестве таблицы в предложении from, вместо нее должна использоваться подробная версия.

1 голос
/ 17 февраля 2020

SYSTOOLS имеет два O, а не три.

IE: SYSTOOLS vs SYSTOOOLS

0 голосов
/ 18 февраля 2020

В дополнение к орфографической ошибке, отмеченной в другом ответе ...

Функции SYSTOOLS для вызовов покоя стали доступны в v7.1 как часть уровня 23 (?) PTF группы базы данных. ..

Вы ссылались на документацию v7.3, вы на самом деле на v7.3?

...