Я занимаюсь разработкой базы данных Informix (v. 12FC9DE) и получаю ошибку -528 (Maximum output rowsize exceeded)
при выполнении следующего SELECT:
SELECT
genbson(row("typ", "name", "sortName", "longName", "shortName", "status", "dates", "comment", "customer"), 1, 1)::JSON
FROM (
(SELECT
genbson(row("name", "shortName"), 1, 1) as "typ",
'{"de":"Max"}'::JSON::BSON as "name",
'{"de":"Mustermann Max"}'::JSON::BSON as "sortName",
'{"de":"Max Mustermann"}'::JSON::BSON as "longName",
'{"de":"M. Mustermann"}'::JSON::BSON as "shortName",
'A' as "status",
genbson(row("street", "number", "zipCode", "city"), 1, 1) as "address",
genbson(row("phone","fax", "mailaddress", "website"), 1, 1) as "contact",
genbson(row("birthDate", "retireDate"), 1, 1) as "dates",
'red' as "comment",
genbson(row("id"), 1, 1) as "customer"
FROM (
(SELECT
'{"de":"Person"}'::JSON::BSON as "name",
'{"de":"Person"}'::JSON::BSON as "shortName",
'Hauptstraße' as "street",
'1' as "number",
'12345' as "zipCode",
'Musterhausen' as "city",
'012-3456789' as "phone",
'012-34567810' as "fax",
'info@mustermann.de' as "mailaddress",
'www.mustermann.de' as "website",
'1980-02-27'::date as "birthDate",
null::date as "retireDate",
'abdgt-756474-eerrr' as "id"
FROM systables where tabid = 1) as a)
) as b);
С помощью этого оператора я пытаюсь объединить несколько столбцов в один JSON /BSON-объект.Строки в этом примере, которые преобразуются с помощью :: JSON :: BSON, представляют собой уже объединенные значения в хранимой процедуре.
При изменении двух из этих значений на обычные строки ошибка не отображается, и SELECT успешен:
SELECT
genbson(row("typ", "name", "sortName", "longName", "shortName", "status", "dates", "comment", "customer"), 1, 1)::JSON
FROM (
(SELECT
genbson(row("name", "shortName"), 1, 1) as "typ",
'{"de":"Max"}'::JSON::BSON as "name",
'{"de":"Mustermann Max"}'::JSON::BSON as "sortName",
'{"de":"Max Mustermann"}' as "longName",
'{"de":"M. Mustermann"}' as "shortName",
'A' as "status",
genbson(row("street", "number", "zipCode", "city"), 1, 1) as "address",
genbson(row("phone","fax", "mailaddress", "website"), 1, 1) as "contact",
genbson(row("birthDate", "retireDate"), 1, 1) as "dates",
'red' as "comment",
genbson(row("id"), 1, 1) as "customer"
FROM (
(SELECT
'{"de":"Person"}'::JSON::BSON as "name",
'{"de":"Person"}'::JSON::BSON as "shortName",
'Hauptstraße' as "street",
'1' as "number",
'12345' as "zipCode",
'Musterhausen' as "city",
'012-3456789' as "phone",
'012-34567810' as "fax",
'info@mustermann.de' as "mailaddress",
'www.mustermann.de' as "website",
'1980-02-27'::date as "birthDate",
null::date as "retireDate",
'abdgt-756474-eerrr' as "id"
FROM systables where tabid = 1) as a)
) as b);
Я использую DBeaver или DataStudio для выполнения SELECT.В обоих появляется ошибка.
Мой вопрос: почему?;)
Есть предложения по этому поводу?Возможно, это известная ошибка или я что-то не так делаю?
С уважением, С. Кип