Попытка добавить специальный символ (%) в переменную с последующим знаком конкатенации в ESQL приводит к следующей ошибке - PullRequest
0 голосов
/ 19 октября 2018

Попытка добавить специальный символ (%) в переменную со следующим знаком конкатенации, но при этом возникает ошибка: Неверные символы.

DECLARE Percent CHARACTER CAST ( ' %' AS CHARACTER CCSID 1208);

SET AlocatedAmount = 45

SET InPercent = AlocatedAmount||'%'

Результат должен быть : InPercent= 45%

Ошибка : недопустимые символы :: 45%

Что здесь не так?

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Так что есть также возможность использовать FORMAT в вашем CAST

DECLARE Num INTEGER;
DECLARE FormattedStr CHAR;  
SET Num = 45;
SET FormattedStr = CAST(Num AS CHAR FORMAT '#0%');

Более подробную информацию можно найти на https://www.ibm.com/support/knowledgecenter/en/SSMKHH_9.0.0/com.ibm.etools.mft.doc/ak05615_.htm

0 голосов
/ 21 октября 2018

AlocatedAmount выглядит как INTEGER, для которого вы не можете использовать оператор конкатенации.Сначала вам нужно наложить это на CHARACTER:

SET InPercent = CAST(AlocatedAmount AS CHARACTER) || '%';
...