【发布时间】:2019-12-24 20:00:14
【问题描述】:
我在 DB2 中编写了一个函数——计算特定列中记录的 ASCII。我想要一些帮助,因为我想检查字符串中每个字符的 ASCII,如果该记录的 ASCII 大于 127,则返回 yes。
BEGIN
ATOMIC DECLARE POS,
INT;
IF INSTR IS NULL THEN RETURN NULL;
END IF;
SET
(
POS,
LEN
)=(
1,
LENGTH(INSTR)
);
WHILE POS <= LEN DO IF ASCII( SUBSTR( INSTR, POS, 1 ))> 128 THEN RETURN 'Y';
END IF;
SET
POS = POS + 1;
END WHILE;
RETURN 'N';
【问题讨论】:
-
我认为使用正则表达式要容易得多。见stackoverflow.com/questions/4763757/…。
-
是的,我也写过正则表达式。但首先我想从数据库中的特定表中取出所有特殊字符。该表有数百万条记录。为此,我正在考虑编写一个函数,该函数将为我提供具有 ascii 大于 127 的特殊字符的记录。我想计算该列中每个字符的 ascii。
标签: sql loops db2 ascii user-defined-functions