SQLRPGLE & JSON_OBJECT CTE 语句 -101 错误
SQLRPGLE & JSON_OBJECT CTE Statements -101 Error
该程序编译正确,我们使用的是 V7R3 - 但是当 运行 它接收到 -101 的 SQLCOD 并且 SQLSTATE 代码为 54011,它指出:为 table 指定了太多的列、视图或 table 函数。这是一个正在创建的非常小的 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 发送功能,之前从未遇到过此问题。
谢谢,
约翰
很抱歉延迟回复此问题。已更正,问题出在“值”语句上。
这是使其正常工作所需的正确代码:
Select json_object('header' : hdrData format json,
'erpReferenceData' value refs format json)
INTO :OutFile
From headerData, erpReferences )
该程序编译正确,我们使用的是 V7R3 - 但是当 运行 它接收到 -101 的 SQLCOD 并且 SQLSTATE 代码为 54011,它指出:为 table 指定了太多的列、视图或 table 函数。这是一个正在创建的非常小的 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 发送功能,之前从未遇到过此问题。
谢谢, 约翰
很抱歉延迟回复此问题。已更正,问题出在“值”语句上。
这是使其正常工作所需的正确代码:
Select json_object('header' : hdrData format json,
'erpReferenceData' value refs format json)
INTO :OutFile
From headerData, erpReferences )