De onderstaande code op Exact Online Salaris geeft een foutmelding:
An error occured - 15e43c8a-589b-4ab1-8351-6893e482cc04
itgenpse009: Een select … into-instructie in PSQL moet precies een rij ophalen, maar er zijn meerdere rijen opgehaald.
Pas s.v.p. de logica van uw select-statement in PSQL aan om altijd precies een rij terug te geven in plaats van 29 rijen.
declare
l_divisions constant varchar2 := cloud_http.get_request_query_parameter_value('divisions');
--
-- Table function specific parameters.
--
l_payroll_year constant varchar2 := cloud_http.get_request_query_parameter_value('year');
--
l_json clob;
begin
use all@eol;
--
-- Return output as JSON.
--
cloud_http.set_response_content_type('application/json');
--
-- Append JSON form of table contents to HTTP output.
--
select *
into l_json
from ( select ptn.Division
, ptn.EmployeeHID
, ptn.PayrollComponentCode
, ptn.payrollYear
, ptn.Period
, ptn.CalculatedAmount
from systemdivisions@eol sdn
join PayrollTransactionsByPayrollYear(sdn.code, l_payroll_year) ptn
on ptn.Status != 7
where ',' || replace(l_divisions, ' ', '') || ',' like '%,' || sdn.code || ',%'
for json auto
)
;
cloud_http.append_to_response_body_text(l_json);
end;
Deze foutmelding treedt ook op als ik de inner-view samenvoeg met de buitenste query.
Als de tabelfunctie PayrollTransactionsByPayrollYear
maar enkele honderden rijen teruggeeft, dan treedt de foutmelding niet op.
De foutmelding lijkt op Itgenpse009: Differences when running a query in the SQL Editor compared to a stored procedure.