注册
达梦数据复制软件DMDRS DRS语言使用:DMDRS函数(一)
专栏/数+融合专栏/ 文章详情 /

达梦数据复制软件DMDRS DRS语言使用:DMDRS函数(一)

达梦数+数据融合软件(DMDF)产品团队 2026/07/29 176 0 0
摘要 介绍DMDRS DRS语言的DMDRS函数,包括系统函数包、测试函数包、调试函数、REDIS函数、数学函数和字符串函数。

6 DMDRS函数

1 系统函数包

1.1 CUR_CID

功能

获取当前运行上下文的ID,可以简写为_CID_。

语法

DRS_SYS.CUR_CID() RETURN INT --简写:__CID__

1.2 CUR_SITEID

功能

获取当前流程转换操作归属的站点ID,可以简写为_SITEID_。

语法

DRS_SYS.CUR_SITEID() RETURN INT --简写:__SITEID__

1.3 CUR_THRDB

功能

获取当前流程转换工作线程的数据库连接,可以简写为_THRDB_。

说明

该数据库连接不允许关闭。

语法

DRS_SYS.CUR_THRDB() RETURN DRS.DBX --简写:__THRDB__

1.4 HALT

功能

程序异常中断自杀。

语法

DRS_SYS.HALT(msg) RETURN VOID
参数名 类型 说明
msg VARCHAR 异常输出消息。

1.5 MSLEEP

功能

线程休眠一段时间。

语法

DRS_SYS.MSLEEP(msec) RETURN VOID
参数名 类型 说明
msec INT 暂停的毫秒数,不小于零。

示例

DRS_SYS.PUT_LINE('START:', NOW()); DRS_SYS.MSLEEP(300); DRS_SYS.PUT_LINE('END: ', NOW());

终端显示如下:

START:2023-04-24 14:08:15.008000 END: 2023-04-24 14:08:15.309000

1.6 PUT

功能

在终端界面输出文本,不换行。

语法

DRS_SYS.PUT(...) RETURN VOID
参数名 类型 说明
可变参数 VARCHAR 字符串列表,拼接后输出。

示例

DRS_SYS.PUT('Hello World!'); DRS_SYS.PUT('This is from ', 'DRS!');

终端显示如下:

Hello World!This is from DRS!

1.7 PUT_LINE

功能

在终端界面输出文本,同时换行。

语法

DRS_SYS.PUT_LINE(...) RETURN VOID
参数名 类型 说明
可变参数 VARCHAR 字符串列表,拼接后输出。

示例

DRS_SYS.PUT_LINE('Hello World!'); DRS_SYS.PUT_LINE('This is from ', 'DRS!');

终端显示如下:

Hello World! This is from DRS!

1.8 SLEEP

功能

线程休眠一段时间。

语法

DRS_SYS.SLEEP(sec) RETURN VOID
参数名 类型 说明
sec INT 暂停的秒数,不小于零。

示例

DRS_SYS.PUT_LINE('START:', NOW()); DRS_SYS.SLEEP(5); DRS_SYS.PUT_LINE('END: ', NOW());

终端显示如下:

START:2023-04-24 14:03:50.129000 END: 2023-04-24 14:03:55.143000

1.9 THROW

功能

抛出错误,终止执行。

语法

DRS_SYS.THROW(code, msg) RETURN VOID
参数名 类型 说明
code INT 错误码。
msg VARCHAR 错误消息。

2 测试函数包

DMDRS同步测试函数,通过源DMDRS辅助表操作同步到目的端,执行相应的命令,如行数、结果集MD5等校验,并回送校验结果至DMDRS测试工具。

2.1 CHECK_MD5

功能

通过计算查询结果集MD5值,校验同步对象的数据是否正确。

语法

TEST.CHECK_MD5(dbx, sch, obj, sql[, md5]) RETURN VOID
参数名 类型 说明
dbx DRS.DBX 数据库连接。
sch VARCHAR(128) 校验对象模式名。
obj VARCHAR(128) 校验对象名。
sql VARCHAR 查询SQL语句。
md5 VARBINARY(16) 可选参数,正确MD5值。

2.2 CHECK_ROWS

功能

校验同步表的行数是否正确。

语法

TEST.CHECK_ROWS(dbx, sch, tab) RETURN VOID
参数名 类型 说明
dbx DRS.DBX 数据库连接。
sch VARCHAR(128) 校验表模式名。
tab VARCHAR(128) 校验表名。

3 调试函数

3.1 ASSERT

功能

DEBUG模式下,表达式为真断言。

语法

ASSERT(exp) RETURN VOID
参数名 类型 说明
exp BOOL 值表达式。

4 REDIS函数

4.1 REDIS_CMD

功能

暂存一条REDIS指令。暂存的指令将会在目标DMDRS的事务提交阶段打包发送到数据库。

语法1

REDIS_CMD(cmd) RETURN VOID
参数名 类型 说明
cmd VARCHAR REDIS指令。

语法2

REDIS_CMD(...) RETURN VOID
参数名 类型 说明
可变参数 VARBINARY REDIS指令。

4.2 REDIS_KEY

功能

根据默认规则为DML操作生成键。

说明

当存在主键列时,规则为模式名:表名:主键值1{:主键值n}。当不存在主键列时,规则为模式名:表名:ROWID。

语法

REDIS_KEY() RETURN VARBINARY

4.3 REDIS_VALUE

功能

根据默认规则为DML操作生成值。

说明

当存在非主键列,规则为非主键值1{:非主键值n}。当不存在非主键列,规则为空值。

语法

REDIS_VALUE() RETURN VARBINARY

5 数学函数

5.1 ABS

功能

求n的绝对值。

语法

ABS(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(ABS(-101.1));

输出结果为:101.1

5.2 ACOS

功能

求n的反余弦值。

语法

ACOS(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。取值范围:[-1,1]。

示例

DRS_SYS.PUT_LINE(ACOS(0));

输出结果为:1.5707963267948966

5.3 ASIN

功能

求n的反正弦值。

语法

ASIN(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。取值范围:[-1,1]。

示例

DRS_SYS.PUT_LINE(ASIN(0));

输出结果为:0

5.4 ATAN

功能

求n的反正切值。

语法

ATAN(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(ATAN(1));

输出结果为:0.78539816339744828

5.5 ATAN2

功能

求n/m的4象限反正切值,即坐标(m,n)的方位角。

语法

ATAN2(n, m) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。
m DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(ATAN2(0.2, 0.3));

输出结果为:0.58800260354756761

5.6 CEIL

功能

求不小于n的最小整数。

语法

CEIL(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(CEIL(15.6));

输出结果为:16

DRS_SYS.PUT_LINE(CEIL(-16.23));

输出结果为:-16

5.7 CEILING

功能

求不小于n的最小整数。同函数CEIL。

5.8 COS

功能

求弧度值n的余弦值。

语法

COS(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 弧度值。

示例

DRS_SYS.PUT_LINE(COS(14.78));

输出结果为:-0.59946542619465426

5.9 COSH

功能

求n的双曲余弦值。

语法

COSH(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(COSH(0));

输出结果为:1

5.10 COT

功能

求弧度值n的余切值。

语法

COT(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 弧度值。

示例

DRS_SYS.PUT_LINE(COT(20 * PI() / 180));

输出结果为:2.7474774194546225

5.11 DEGREES

功能

求弧度值n对应的角度值。

语法

DEGREES(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 弧度值。

示例

DRS_SYS.PUT_LINE(DEGREES(1.0));

输出结果为:57.295779513082323

5.12 EXP

功能

求自然常数e的n次幂。

语法

EXP(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE n次幂。

示例

DRS_SYS.PUT_LINE(EXP(4));

输出结果为:54.598150033144236

5.13 FLOOR

功能

求不大于n的最大整数。

语法

FLOOR(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(FLOOR(15.6));

输出结果为:15

DRS_SYS.PUT_LINE(FLOOR(-16.23));

输出结果为:-17

5.14 GREAT

功能

求两个数中的最大值。

语法

GREAT(n1, n2) RETURN DOUBLE
参数名 类型 说明
n1 DOUBLE 数值。
n2 DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(GREAT(2, 4));

输出结果为:4

5.15 GREATEST

功能

求多个数中的最大数。

语法

GREATEST(n1, ...) RETURN DOUBLE
参数名 类型 说明
n1 DOUBLE 数值。
可变参数 DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(GREATEST(1.2, 3.4, 2.1));

输出结果为:3.4

5.16 LEAST

功能

求多个数中的最小值。

语法

LEAST(n1, ...) RETURN DOUBLE
参数名 类型 说明
n1 DOUBLE 数值。
可变参数 DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(LEAST(1.2,3.4,2.1));

输出结果为:1.2

5.17 LN

功能

求n的自然对数。

语法

LN(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(LN(95));

输出结果为:4.55387689160054

5.18 LOG

功能

求n以m为底的对数。参数m省略时,求n的自然对数,等价于LN。

语法

LOG([m, ]n) RETURN DOUBLE
参数名 类型 说明
m DOUBLE 可选参数,数值。取值范围:大于0且不为1。
n DOUBLE 数值。取值范围:大于0。

示例

DRS_SYS.PUT_LINE(LOG(10, 100));

输出结果为:2

5.19 LOG10

功能

求n以10为底的对数。

语法

LOG10(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。取值范围:大于0。

示例

DRS_SYS.PUT_LINE(LOG10(100));

输出结果为:2

5.20 MOD

功能

求m除以n的余数。当n为0时直接返回m。

语法

MOD(m, n) RETURN DOUBLE
参数名 类型 说明
m DOUBLE 数值。
n DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(MOD(15, 10));

输出结果为:5

5.21 PI

功能

返回常数PI值。

语法

PI() RETURN DOUBLE

示例

DRS_SYS.PUT_LINE(PI());

输出结果为:3.1415926535897931

5.22 POWER

功能

求m的n次幂。如果m为负数,n必须为整数。

语法

POWER(m, n) RETURN DOUBLE
参数名 类型 说明
m DOUBLE 数值。
n DOUBLE 数值。如果m为负数,n必须为整数。

示例

DRS_SYS.PUT_LINE(POWER(3, 2));

输出结果为:9

5.23 POWER2

功能

求m的n次幂。m和n必须为整数,返回NUMBER。

语法

POWER2(m, n) RETURN NUMBER
参数名 类型 说明
m BIGINT 数值。
n BIGINT 数值。取值范围:大于等于0。

示例

DRS_SYS.PUT_LINE(POWER2(19, 14));

输出结果为:799006685782884121

5.24 RADIANS

功能

求角度n对应的弧度值。

语法

RADIANS(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 角度值。

示例

DRS_SYS.PUT_LINE(RADIANS(180));

输出结果为:3.1415926535897931

5.25 RAND

功能

返回一个[0,1]之间的随机浮点数。n为生成随机数的种子,当n省略时,系统自动生成。

语法

RAND([n]) RETURN DOUBLE
参数名 类型 说明
n INT 可选参数,随机数的生成种子。

示例

DRS_SYS.PUT_LINE(RAND(314));

输出结果为:0.032471694082461013

5.26 ROUND

功能

返回n四舍五入到小数点后面第m位的值。m默认值为0,如果为负数则四舍五入到小数点的左边。

语法

ROUND(n[, m]) RETURN NUMBER
参数名 类型 说明
n NUMBER 数值。
m SMALLINT 可选参数,位置。默认为0。

示例

DRS_SYS.PUT_LINE(ROUND(15.163, -1));

输出结果为:20

5.27 SIGN

功能

求n对应的符号。如果n为正数,返回1,如果n为负数,返回-1,如果n为0,返回0。

语法

SIGN(n) RETURN INT
参数名 类型 说明
n DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(SIGN(-101.1));

输出结果为:1

5.28 SIN

功能

求弧度值n的正弦值。

语法

SIN(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 弧度值。

示例

DRS_SYS.PUT_LINE(SIN(0));

输出结果为:0

5.29 SINH

功能

求n的双曲正弦值。

语法

SINH(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(SINH(1));

输出结果为:1.1752011936438014

5.30 SQRT

功能

求n的平方根。

语法

SQRT(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。取值范围:大于0。

示例

DRS_SYS.PUT_LINE(SQRT(15));

输出结果为:3.872983346207417

5.31 TAN

功能

求弧度值n的正切值。

语法

TAN(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 弧度值。

示例

DRS_SYS.PUT_LINE(TAN(45 * PI() / 180));

输出结果为:1

5.32 TANH

功能

求n的双曲正切值。

语法

TANH(n) RETURN DOUBLE
参数名 类型 说明
n DOUBLE 数值。

示例

DRS_SYS.PUT_LINE(TANH(1));

输出结果为:0.761594155955765

5.33 TO_CHAR

功能

数值转字符串输出。

语法

TO_CHAR(n) RETURN VARCHAR
参数名 类型 说明
n NUMBER 数值。

示例

DRS_SYS.PUT_LINE(TO_CHAR(-1799.99));

输出结果为:-1799.99

5.34 TO_NUMBER

功能

无格式转换字符串为精确数值。

语法

TO_NUMBER(str) RETURN NUMBER
参数名 类型 说明
str VARCHAR 数值字符串。

示例

DRS_SYS.PUT_LINE(TO_NUMBER('0.7615941'));

输出结果为:0.7615941

5.35 TRUNC

功能

返回n截去小数点后第m位以后的值。m默认值为0,如果为负数则从小数点左边开始截去。

语法

TRUNC(n[, m]) RETURN NUMBER
参数名 类型 说明
n NUMBER 数值。
m SMALLINT 可选参数,位置。默认为0。

示例

DRS_SYS.PUT_LINE(TRUNC(15.163, 1));

输出结果为:15.1

5.36 TRUNCATE

功能

返回n截去小数点后第m位以后的值。同函数TRUNC。

6 字符串函数

6.1 ASCII

功能

返回字符c对应的整数(ASCII值)。

语法

ASCII(c) RETURN INT
参数名 类型 说明
c VARCHAR(10) 字符,可以是中文。

示例

DRS_SYS.PUT_LINE(ASCII('B'));

输出结果为:66

DRS_SYS.PUT_LINE(ASCII('中'));

输出结果为:54992

6.2 BIT_LENGTH

功能

返回字符串s的位长度。

语法

BIT_LENGTH(s) RETURN INT
参数名 类型 说明
s VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(BIT_LENGTH('AB'));

输出结果为:16

6.3 CHAR

功能

返回整数n对应的字符。

语法

CHAR(n) RETURN VARCHAR(10)
参数名 类型 说明
n INT 整数。

示例

DRS_SYS.PUT_LINE(CHAR(66));

输出结果为:B

6.4 CHAR_LENGTH

功能

返回字符串s的字符长度。一个汉字作为一个字符计算,字符串尾部的空格也计数。

语法

CHAR_LENGTH(s) RETURN INT
参数名 类型 说明
s VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(CHAR_LENGTH('你好!中国!'));

输出结果为:6

6.5 CHARACTER_LENGTH

功能

返回字符串s的字符长度。一个汉字作为一个字符计算,字符串尾部的空格也计数。同函数CHAR_LENGTH。

6.6 CHR

功能

返回整数n对应的字符,同函数CHAR。

6.7 CONCAT

功能

返回多个字符串顺序联结成的一个字符串。该函数等价于连接符||。

语法

CONCAT(...) RETURN VARCHAR
参数名 类型 说明
可变参数 VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(CONCAT('你好!', '中国!', '!'));

输出结果为:你好!中国!!

6.8 DIFFERENCE

功能

比较两个字符串的SOUNDEX值之间的差异。返回两个SOUNDEX值串同一位置出现相同字符的个数。

语法

DIFFERENCE(s1, s2) RETURN SMALLINT
参数名 类型 说明
s1 VARCHAR 字符串。
s2 VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(DIFFERENCE('she', 'he'));

输出结果为:3

6.9 INITCAP

功能

将每一个单词的第一个字母改为大写,其他字母改为小写。单词用空格分隔,不是字母的字符不受影响。

语法

INITCAP(s) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(INITCAP('hello 你好a world!'));

输出结果为:Hello 你好A World!

6.10 INS

功能

删除在字符串s1中位置begin开始的n个字符,再把s2插入到该位置。一个汉字作为一个字符计算。

语法

INS(s1, begin, n, s2) RETURN VARCHAR
参数名 类型 说明
s1 VARCHAR 字符串。
begin INT 位置。
n INT 长度。
s2 VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(INS('你abc好defg', 3, 3, 'kkk'));

输出结果为:你akkkdefg

6.11 INSERT

功能

删除在字符串s1中位置begin开始的n个字符,再把s2插入到该位置。一个汉字作为一个字符计算。同函数INS。

6.12 INSSTR

功能

删除在字符串s1中位置begin开始的n个字符,再把s2插入到该位置。一个汉字作为一个字符计算。同函数INS。

6.13 INSTR

功能

从字符串s1的位置n开始查找,返回字符子串s2的第m次的出现的位置。n、m默认值为1。如果n为负数,则表示从最右边开始的指定位置向前查找。如果未找到返回0。一个汉字作为一个字符计算。

语法

INSTR(s1, s2[, n[, m]]) RETURN INT
参数名 类型 说明
s1 VARCHAR 字符串。
s2 VARCHAR 子字符串。
n INT 可选参数,查找起始位置。
m INT 可选参数,查找第几次匹配。

示例

DRS_SYS.PUT_LINE(INSTR('CORPORATE FLOOR', 'OR', 3, 2));

输出结果为:14

6.14 INSTRB

功能

从字符串s1的位置n开始查找,返回字符子串s2的第m次的出现的位置。n、m默认值为1。如果n为负数,则表示从最右边开始的指定位置向前查找。如果未找到返回0。以字节为单位计算。

语法

INSTRB(s1, s2[, n[, m]]) RETURN INT
参数名 类型 说明
s1 VARCHAR 字符串。
s2 VARCHAR 子字符串。
n INT 可选参数,查找起始位置。
m INT 可选参数,查找第几次匹配。

示例

DRS_SYS.PUT_LINE(INSTRB('我们的计算机', '计算机',1,1));

输出结果为:7

6.15 LCASE

功能

将字符串s中的所有大写字母改为小写。

语法

LCASE(s) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(LCASE('ABC'));

输出结果为:abc

6.16 LEFT

功能

返回字符串s最左边n个字符组成的字符串。

语法

LEFT(s, n) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。
n INT 长度。

示例

DRS_SYS.PUT_LINE(LEFT('a我们的计算机a', 3));

输出结果为:a我们

6.17 LEFTSTR

功能

返回字符串s最左边n个字符组成的字符串。同函数LEFT。

6.18 LEN

功能

返回字符串s的字符长度。汉字算作一个字符,尾部空格不计数。

语法

LEN(s) RETURN INT
参数名 类型 说明
s VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(LEN('hi,你好 '));

输出结果为:5

6.19 LENGTH

功能

返回字符串s的字符长度。汉字算作一个字符,尾部空格计数。

语法

LENGTH(s) RETURN INT
参数名 类型 说明
s VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(LENGTH('hi,你好 '));

输出结果为:7

6.20 LENGTHB

功能

返回字符串s的字节长度。

语法

LENGTHB(s) RETURN INT
参数名 类型 说明
s VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(LENGTHB('hi,你好 '));

输出结果为:10

6.21 LOCATE

功能

返回s1在s2指定位置n开始, 首次出现的字符位置。n默认值为1。如果n为负数,则表示从最右边开始的指定位置向前查找。一个汉字作为一个字符计算。

语法

LOCATE(s1, s2[, n]) RETURN INT
参数名 类型 说明
s1 VARCHAR 子字符串。
s2 VARCHAR 字符串。
n INT 可选参数,位置。

示例

DRS_SYS.PUT_LINE(LOCATE('man', 'The manager is a man', 10));

输出结果为:18

6.22 LOWER

功能

将字符串s中的所有大写字母改为小写。同函数LCASE。

6.23 LPAD

功能

将字符串s1的左边填充上字符串s2指定的字符,将其拉伸至n个字节长度。默认填充空格。

语法

LPAD(s1, n[, s2]) RETURN VARCHAR
参数名 类型 说明
s1 VARCHAR 字符串。
n INT 拉伸长度。
s2 VARCHAR 可选参数,填充字符串。

示例

DRS_SYS.PUT_LINE(LPAD('FX',19,'Teacher'));

输出结果为:TeacherTeacherTeaFX

6.24 LTRIM

功能

从字符串s1的左端开始删除字符串s2中的字符,直到遇到不在s2中的第一个字符。s2默认为空格。

语法

LTRIM(s1[, s2]) RETURN VARCHAR
参数名 类型 说明
s1 VARCHAR 字符串。
s2 VARCHAR 可选参数,字符串。

示例

DRS_SYS.PUT_LINE(LTRIM('xyyxxxXxyLAST WORD', 'xy'));

输出结果为:XxyLAST WORD

6.25 OCTET_LENGTH

功能

返回字符串s的字节长度。同函数LENGTHB。

6.26 POSITION

功能

从字符串s2的最左边开始查找,返回字符子串s1首次出现的位置。如果未找到返回0。以字节为单位计算。

语法

POSITION(s1, s2) RETURN INT
参数名 类型 说明
s1 VARCHAR 子字符串。
s2 VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(POSITION('数', '达梦数据库'));

输出结果为:5

6.27 REPEAT

功能

返回将字符串按指定次数重复形成的字符串。

语法

REPEAT(s, n) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。
n INT 重复次数。

示例

DRS_SYS.PUT_LINE(REPEAT('Hello',3));

输出结果为:HelloHelloHello

6.28 REPEATSTR

功能

返回将字符串按指定次数重复形成的字符串。同函数REPEAT。

6.29 REPLACE

功能

将字符串s1中所有出现的字符串s2都替换成字符串s3。s3省略则相当于直接删除。

语法

REPLACE(s1, s2[, s3]) RETURN VARCHAR
参数名 类型 说明
s1 VARCHAR 字符串。
s2 VARCHAR 查找字符串。
s3 VARCHAR 可选参数,替换字符串。

示例

DRS_SYS.PUT_LINE(REPLACE('我们的计算机 我们的计算机', '我们', '他们'));

输出结果为:他们的计算机 他们的计算机

6.30 REPLICATE

功能

返回将字符串按指定次数重复形成的字符串。同函数REPEAT。

6.31 REVERSE

功能

返回字符串s的字符顺序反转后形成的字符串。

语法

REVERSE(s) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(REVERSE('我们的计算机'));

输出结果为:机算计的们我

6.32 RIGHT

功能

返回字符串s最右边n个字符组成的字符串。

语法

RIGHT(s, n) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。
n INT 长度。

示例

DRS_SYS.PUT_LINE(RIGHT('我们的计算机', 3));

输出结果为:计算机

6.33 RIGHTSTR

功能

返回字符串s最右边n个字符组成的字符串。同函数RIGHT。

6.34 RPAD

功能

将字符串s1的右边填充上字符串s2指定的字符,将其拉伸至n个字节长度。默认填充空格。

语法

RPAD(s1, n[, s2]) RETURN VARCHAR
参数名 类型 说明
s1 VARCHAR 字符串。
n INT 拉伸长度。
s2 VARCHAR 可选参数,填充字符串。

示例

DRS_SYS.PUT_LINE(RPAD('计算机', 8, '我们的'));

输出结果为:计算机我

6.35 RTRIM

功能

从字符串s1的右端开始删除字符串s2中的字符,直到遇到不在s2中的第一个字符。s2默认为空格。

语法

RTRIM(s1[, s2]) RETURN VARCHAR
参数名 类型 说明
s1 VARCHAR 字符串。
s2 VARCHAR 可选参数,字符串。

示例

DRS_SYS.PUT_LINE(RTRIM('我们的A计算机我','我计机'));

输出结果为:我们的A计算

6.36 SOUNDEX

功能

返回一个表示字符串发音的字符串。由四个字符构成,第一个为英文字符,后三个为数字。

语法

SOUNDEX(s) RETURN VARCHAR(4)
参数名 类型 说明
s VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(SOUNDEX('Hello'));

输出结果为:H400

6.37 SPACE

功能

返回一个包含n个空格的字符串。

语法

SPACE(n) RETURN VARCHAR
参数名 类型 说明
n INT 长度。

6.38 STRPOSDEC

功能

把字符串按指定位置上的字符值减1。默认最后一个字符。以字节为单位计算。

语法

STRPOSDEC(s[, n]) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。
n INT 可选参数,字节位置。

示例

DRS_SYS.PUT_LINE(STRPOSDEC('hello',3));

输出结果为:heklo

6.39 STRPOSINC

功能

把字符串按指定位置上的字符值加1。默认最后一个字符。以字节为单位计算。

语法

STRPOSINC(s[, n]) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。
n INT 可选参数,字节位置。

示例

DRS_SYS.PUT_LINE(STRPOSINC('我hello',3));

输出结果为:我gello

6.40 STUFF

功能

删除在字符串s1中位置begin开始的n个字符,再把s2插入到该位置。一个汉字作为一个字符计算。同函数INS。

6.41 SUBSTR

功能

返回s中从字符位置m开始的n个字符长度的字符串。若m为负数,则字符位置是从右边开始计算的。如果不指定n将返回剩余子串。

语法

SUBSTR(s[, m[, n]]) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。
m INT 可选参数,字符位置。
n INT 可选参数,字符长度。

示例

DRS_SYS.PUT_LINE(SUBSTR('我们的计算机',3,4));

输出结果为:的计算机

6.42 SUBSTRING

功能

返回s中从字符位置m开始的n个字符长度的字符串。若m为负数,则字符位置是从右边开始计算的。如果不指定n将返回剩余子串。同函数SUBSTR。

6.43 SUBSTRB

功能

返回s中从字节位置m开始的n个字节长度的字符串。若m为负数,则字符位置是从右边开始计算的。如果不指定n将返回剩余子串。

语法

SUBSTRB(s[, m[, n]]) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。
m INT 可选参数,字节位置。
n INT 可选参数,字节长度。

示例

DRS_SYS.PUT_LINE(SUBSTRB('达梦数据库有限公司',4,10));

输出结果为:" 数据库有 "

6.44 TRANSLATE

功能

将字符串s1中所有出现的字符串s2都替换成字符串s3,s3省略则直接删除。与REPLACE区别在于,替换的字符串s3不会超过s2的大小,超过的部分会忽略。

语法

TRANSLATE(s1, s2[, s3]) RETURN VARCHAR
参数名 类型 说明
s1 VARCHAR 字符串。
s2 VARCHAR 查找字符串。
s3 VARCHAR 可选参数,替换字符串。

示例

DRS_SYS.PUT_LINE(TRANSLATE('我们的计算机', '我们的', '大大世界');

输出结果为:大大世计算机

6.45 TRIM

功能

从字符串s1的两端开始删除字符串s2中的字符,直到遇到不在s2中的第一个字符。s2默认为空格。

语法

TRIM(s1[, s2]) RETURN VARCHAR
参数名 类型 说明
s1 VARCHAR 字符串。
s2 VARCHAR 可选参数,字符串。

示例

DRS_SYS.PUT_LINE(TRIM('我们的A计算机我','我计机'));

输出结果为:们的A计算

6.46 UCASE

功能

将字符串s中的小写字母转换为大写。

语法

UCASE(s) RETURN VARCHAR
参数名 类型 说明
s VARCHAR 字符串。

示例

DRS_SYS.PUT_LINE(UCASE('hello world'));

输出结果为:HELLO WORLD

6.47 UPPER

功能

将字符串s中的小写字母转换为大写,同函数UCASE。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服