Утомительный пакет, когда значение выходного параметра превышает лимит символов (8000) - PullRequest
0 голосов
/ 10 июля 2020

Я использую выходной параметр процедуры Store ниже, когда значение превышает 8000 символов, значение будет обрезано. Кто-нибудь может дать мне несколько идей или указаний, как это исправить? Я видел, как кто-то сказал, что для получения значения используется несколько переменных, настроенных в магазине. Но проблема в том, что я не знаю, сколько 8000 символов мы получим, а это будет намного больше, чем 8000.

request.addOutputParameter('JSONOUTPUT1', TYPES.VarChar);
    request.addOutputParameter('JSONOUTPUT2', TYPES.VarChar);

    request.on('returnValue', (name, value, matadata)=>{
      result[name] = value; // if value is over 8000 characters will got truncated.
    });

Для обычного результата запроса sql я использую приведенный ниже код для получения данных возвращается с sql сервера:

request.on("row", columns => {
        result += columns[0].value; 
      });

. Вышеупомянутый способ чтения данных из блока базы данных по блоку работает идеально! но, похоже, для вывода процедуры хранения я не нашел такой способ утомительным.

Я заранее признателен, если кто-нибудь столкнется с подобной проблемой и сможет предложить решение.

1 Ответ

0 голосов
/ 27 июля 2020

Для тех, кто сталкивается с той же ошибкой, ниже показано, как я справился в итоге: вместо использования параметра outputstoreprocedue также используйте запрос. Чтение данных по-прежнему построчно, фрагмент за фрагментом.

request.on("row", columns => {    
columns.forEach((column)=> {
result[column.metadata.colName] = column.value;
  })     
});
 request.on('requestCompleted', () => {
    connection.close();
    done(error, result);
  });
connection.execSql(request);

Ниже приведен запрос:

const query = `DECLARE @json1 AS VarChar(MAX)
DECLARE @json2 AS VarChar(MAX)
EXEC dbo.[abc_storeprocedure]
@i_STORE_NBR = '${input1}', 
@jsonOutput1 = @json1 OUTPUT,
@jsonOutput2 = @json2 OUTPUT
SELECT @json1 as 'emailList'
SELECT @json2 as 'candidateList' `

FYI: в утомительном 6.6.5 Текст устарел

...