【发布时间】:2020-06-25 02:21:33
【问题描述】:
这个程序编译正确,我们在 V7R3 上 - 但是在运行时它收到 -101 的 SQLCOD 并且 SQLSTATE 代码是 54011,它指出:为表、视图或表函数指定了太多列。这是一个正在创建的非常小的 JSON,所以我认为这不是问题。
RPGLE 代码:
dcl-s OutFile sqltype(dbclob_file);
xfil_tofile = '/ServiceID-REFCODJ.json';
Clear OutFile;
OutFile_Name = %TrimR(XFil_ToFile);
OutFile_NL = %Len(%TrimR(OutFile_Name));
OutFile_FO = IFSFileCreate;
OutFile_FO = IFSFileOverWrite;
exec sql
With elm (erpRef) as (select json_object
('ServiceID' VALUE trim(s.ServiceID),
'ERPReferenceID' VALUE trim(i.RefCod) )
FROM PADIMH I
INNER JOIN PADGUIDS G ON G.REFCOD = I.REFCOD
INNER JOIN PADSERV S ON S.GUID = G.GUID
WHERE G.XMLTYPE = 'Service')
, arr (arrDta) as (values json_array (
select erpRef from elm format json))
, erpReferences (refs) as ( select json_object ('erpReferences' :
arrDta Format json) from arr)
, headerData (hdrData) as (select json_object(
'InstanceName' : trim(Cntry) )
from padxmlhdr
where cntry = 'US')
VALUES (
select json_object('header' : hdrData format json,
'erpReferenceData' value refs format json)
from headerData, erpReferences )
INTO :OutFile;
非常感谢任何帮助,这是我们第一次尝试创建用于发送的 JSON,之前没有遇到过这个问题。
谢谢, 约翰
【问题讨论】:
-
作业日志中必须有一个 SQL0101 可以为您提供有关其失败原因的更准确信息
-
select erpRef from elm返回多少条记录?values json_array ( select erpRef from elm format json)fail 也一样吗?