6 DMDRS函数
功能
获取当前运行上下文的ID,可以简写为_CID_。
语法
DRS_SYS.CUR_CID() RETURN INT --简写:__CID__
功能
获取当前流程转换操作归属的站点ID,可以简写为_SITEID_。
语法
DRS_SYS.CUR_SITEID() RETURN INT --简写:__SITEID__
功能
获取当前流程转换工作线程的数据库连接,可以简写为_THRDB_。
说明
该数据库连接不允许关闭。
语法
DRS_SYS.CUR_THRDB() RETURN DRS.DBX --简写:__THRDB__
功能
程序异常中断自杀。
语法
DRS_SYS.HALT(msg) RETURN VOID
| 参数名 | 类型 | 说明 |
|---|---|---|
| msg | VARCHAR | 异常输出消息。 |
功能
线程休眠一段时间。
语法
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
功能
在终端界面输出文本,不换行。
语法
DRS_SYS.PUT(...) RETURN VOID
| 参数名 | 类型 | 说明 |
|---|---|---|
| 可变参数 | VARCHAR | 字符串列表,拼接后输出。 |
示例
DRS_SYS.PUT('Hello World!');
DRS_SYS.PUT('This is from ', 'DRS!');
终端显示如下:
Hello World!This is from DRS!
功能
在终端界面输出文本,同时换行。
语法
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!
功能
线程休眠一段时间。
语法
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
功能
抛出错误,终止执行。
语法
DRS_SYS.THROW(code, msg) RETURN VOID
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | INT | 错误码。 |
| msg | VARCHAR | 错误消息。 |
DMDRS同步测试函数,通过源DMDRS辅助表操作同步到目的端,执行相应的命令,如行数、结果集MD5等校验,并回送校验结果至DMDRS测试工具。
功能
通过计算查询结果集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值。 |
功能
校验同步表的行数是否正确。
语法
TEST.CHECK_ROWS(dbx, sch, tab) RETURN VOID
| 参数名 | 类型 | 说明 |
|---|---|---|
| dbx | DRS.DBX | 数据库连接。 |
| sch | VARCHAR(128) | 校验表模式名。 |
| tab | VARCHAR(128) | 校验表名。 |
功能
DEBUG模式下,表达式为真断言。
语法
ASSERT(exp) RETURN VOID
| 参数名 | 类型 | 说明 |
|---|---|---|
| exp | BOOL | 值表达式。 |
功能
暂存一条REDIS指令。暂存的指令将会在目标DMDRS的事务提交阶段打包发送到数据库。
语法1
REDIS_CMD(cmd) RETURN VOID
| 参数名 | 类型 | 说明 |
|---|---|---|
| cmd | VARCHAR | REDIS指令。 |
语法2
REDIS_CMD(...) RETURN VOID
| 参数名 | 类型 | 说明 |
|---|---|---|
| 可变参数 | VARBINARY | REDIS指令。 |
功能
根据默认规则为DML操作生成键。
说明
当存在主键列时,规则为模式名:表名:主键值1{:主键值n}。当不存在主键列时,规则为模式名:表名:ROWID。
语法
REDIS_KEY() RETURN VARBINARY
功能
根据默认规则为DML操作生成值。
说明
当存在非主键列,规则为非主键值1{:非主键值n}。当不存在非主键列,规则为空值。
语法
REDIS_VALUE() RETURN VARBINARY
功能
求n的绝对值。
语法
ABS(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(ABS(-101.1));
输出结果为:101.1
功能
求n的反余弦值。
语法
ACOS(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。取值范围:[-1,1]。 |
示例
DRS_SYS.PUT_LINE(ACOS(0));
输出结果为:1.5707963267948966
功能
求n的反正弦值。
语法
ASIN(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。取值范围:[-1,1]。 |
示例
DRS_SYS.PUT_LINE(ASIN(0));
输出结果为:0
功能
求n的反正切值。
语法
ATAN(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(ATAN(1));
输出结果为:0.78539816339744828
功能
求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
功能
求不小于n的最小整数。
语法
CEIL(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(CEIL(15.6));
输出结果为:16
DRS_SYS.PUT_LINE(CEIL(-16.23));
输出结果为:-16
功能
求不小于n的最小整数。同函数CEIL。
功能
求弧度值n的余弦值。
语法
COS(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 弧度值。 |
示例
DRS_SYS.PUT_LINE(COS(14.78));
输出结果为:-0.59946542619465426
功能
求n的双曲余弦值。
语法
COSH(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(COSH(0));
输出结果为:1
功能
求弧度值n的余切值。
语法
COT(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 弧度值。 |
示例
DRS_SYS.PUT_LINE(COT(20 * PI() / 180));
输出结果为:2.7474774194546225
功能
求弧度值n对应的角度值。
语法
DEGREES(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 弧度值。 |
示例
DRS_SYS.PUT_LINE(DEGREES(1.0));
输出结果为:57.295779513082323
功能
求自然常数e的n次幂。
语法
EXP(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | n次幂。 |
示例
DRS_SYS.PUT_LINE(EXP(4));
输出结果为:54.598150033144236
功能
求不大于n的最大整数。
语法
FLOOR(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(FLOOR(15.6));
输出结果为:15
DRS_SYS.PUT_LINE(FLOOR(-16.23));
输出结果为:-17
功能
求两个数中的最大值。
语法
GREAT(n1, n2) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n1 | DOUBLE | 数值。 |
| n2 | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(GREAT(2, 4));
输出结果为:4
功能
求多个数中的最大数。
语法
GREATEST(n1, ...) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n1 | DOUBLE | 数值。 |
| 可变参数 | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(GREATEST(1.2, 3.4, 2.1));
输出结果为:3.4
功能
求多个数中的最小值。
语法
LEAST(n1, ...) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n1 | DOUBLE | 数值。 |
| 可变参数 | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(LEAST(1.2,3.4,2.1));
输出结果为:1.2
功能
求n的自然对数。
语法
LN(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(LN(95));
输出结果为:4.55387689160054
功能
求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
功能
求n以10为底的对数。
语法
LOG10(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。取值范围:大于0。 |
示例
DRS_SYS.PUT_LINE(LOG10(100));
输出结果为:2
功能
求m除以n的余数。当n为0时直接返回m。
语法
MOD(m, n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| m | DOUBLE | 数值。 |
| n | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(MOD(15, 10));
输出结果为:5
功能
返回常数PI值。
语法
PI() RETURN DOUBLE
示例
DRS_SYS.PUT_LINE(PI());
输出结果为:3.1415926535897931
功能
求m的n次幂。如果m为负数,n必须为整数。
语法
POWER(m, n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| m | DOUBLE | 数值。 |
| n | DOUBLE | 数值。如果m为负数,n必须为整数。 |
示例
DRS_SYS.PUT_LINE(POWER(3, 2));
输出结果为:9
功能
求m的n次幂。m和n必须为整数,返回NUMBER。
语法
POWER2(m, n) RETURN NUMBER
| 参数名 | 类型 | 说明 |
|---|---|---|
| m | BIGINT | 数值。 |
| n | BIGINT | 数值。取值范围:大于等于0。 |
示例
DRS_SYS.PUT_LINE(POWER2(19, 14));
输出结果为:799006685782884121
功能
求角度n对应的弧度值。
语法
RADIANS(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 角度值。 |
示例
DRS_SYS.PUT_LINE(RADIANS(180));
输出结果为:3.1415926535897931
功能
返回一个[0,1]之间的随机浮点数。n为生成随机数的种子,当n省略时,系统自动生成。
语法
RAND([n]) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | INT | 可选参数,随机数的生成种子。 |
示例
DRS_SYS.PUT_LINE(RAND(314));
输出结果为:0.032471694082461013
功能
返回n四舍五入到小数点后面第m位的值。m默认值为0,如果为负数则四舍五入到小数点的左边。
语法
ROUND(n[, m]) RETURN NUMBER
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | NUMBER | 数值。 |
| m | SMALLINT | 可选参数,位置。默认为0。 |
示例
DRS_SYS.PUT_LINE(ROUND(15.163, -1));
输出结果为:20
功能
求n对应的符号。如果n为正数,返回1,如果n为负数,返回-1,如果n为0,返回0。
语法
SIGN(n) RETURN INT
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(SIGN(-101.1));
输出结果为:1
功能
求弧度值n的正弦值。
语法
SIN(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 弧度值。 |
示例
DRS_SYS.PUT_LINE(SIN(0));
输出结果为:0
功能
求n的双曲正弦值。
语法
SINH(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(SINH(1));
输出结果为:1.1752011936438014
功能
求n的平方根。
语法
SQRT(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。取值范围:大于0。 |
示例
DRS_SYS.PUT_LINE(SQRT(15));
输出结果为:3.872983346207417
功能
求弧度值n的正切值。
语法
TAN(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 弧度值。 |
示例
DRS_SYS.PUT_LINE(TAN(45 * PI() / 180));
输出结果为:1
功能
求n的双曲正切值。
语法
TANH(n) RETURN DOUBLE
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | DOUBLE | 数值。 |
示例
DRS_SYS.PUT_LINE(TANH(1));
输出结果为:0.761594155955765
功能
数值转字符串输出。
语法
TO_CHAR(n) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | NUMBER | 数值。 |
示例
DRS_SYS.PUT_LINE(TO_CHAR(-1799.99));
输出结果为:-1799.99
功能
无格式转换字符串为精确数值。
语法
TO_NUMBER(str) RETURN NUMBER
| 参数名 | 类型 | 说明 |
|---|---|---|
| str | VARCHAR | 数值字符串。 |
示例
DRS_SYS.PUT_LINE(TO_NUMBER('0.7615941'));
输出结果为:0.7615941
功能
返回n截去小数点后第m位以后的值。m默认值为0,如果为负数则从小数点左边开始截去。
语法
TRUNC(n[, m]) RETURN NUMBER
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | NUMBER | 数值。 |
| m | SMALLINT | 可选参数,位置。默认为0。 |
示例
DRS_SYS.PUT_LINE(TRUNC(15.163, 1));
输出结果为:15.1
功能
返回n截去小数点后第m位以后的值。同函数TRUNC。
功能
返回字符c对应的整数(ASCII值)。
语法
ASCII(c) RETURN INT
| 参数名 | 类型 | 说明 |
|---|---|---|
| c | VARCHAR(10) | 字符,可以是中文。 |
示例
DRS_SYS.PUT_LINE(ASCII('B'));
输出结果为:66
DRS_SYS.PUT_LINE(ASCII('中'));
输出结果为:54992
功能
返回字符串s的位长度。
语法
BIT_LENGTH(s) RETURN INT
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(BIT_LENGTH('AB'));
输出结果为:16
功能
返回整数n对应的字符。
语法
CHAR(n) RETURN VARCHAR(10)
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | INT | 整数。 |
示例
DRS_SYS.PUT_LINE(CHAR(66));
输出结果为:B
功能
返回字符串s的字符长度。一个汉字作为一个字符计算,字符串尾部的空格也计数。
语法
CHAR_LENGTH(s) RETURN INT
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(CHAR_LENGTH('你好!中国!'));
输出结果为:6
功能
返回字符串s的字符长度。一个汉字作为一个字符计算,字符串尾部的空格也计数。同函数CHAR_LENGTH。
功能
返回整数n对应的字符,同函数CHAR。
功能
返回多个字符串顺序联结成的一个字符串。该函数等价于连接符||。
语法
CONCAT(...) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| 可变参数 | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(CONCAT('你好!', '中国!', '!'));
输出结果为:你好!中国!!
功能
比较两个字符串的SOUNDEX值之间的差异。返回两个SOUNDEX值串同一位置出现相同字符的个数。
语法
DIFFERENCE(s1, s2) RETURN SMALLINT
| 参数名 | 类型 | 说明 |
|---|---|---|
| s1 | VARCHAR | 字符串。 |
| s2 | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(DIFFERENCE('she', 'he'));
输出结果为:3
功能
将每一个单词的第一个字母改为大写,其他字母改为小写。单词用空格分隔,不是字母的字符不受影响。
语法
INITCAP(s) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(INITCAP('hello 你好a world!'));
输出结果为:Hello 你好A World!
功能
删除在字符串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
功能
删除在字符串s1中位置begin开始的n个字符,再把s2插入到该位置。一个汉字作为一个字符计算。同函数INS。
功能
删除在字符串s1中位置begin开始的n个字符,再把s2插入到该位置。一个汉字作为一个字符计算。同函数INS。
功能
从字符串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
功能
从字符串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
功能
将字符串s中的所有大写字母改为小写。
语法
LCASE(s) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(LCASE('ABC'));
输出结果为:abc
功能
返回字符串s最左边n个字符组成的字符串。
语法
LEFT(s, n) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
| n | INT | 长度。 |
示例
DRS_SYS.PUT_LINE(LEFT('a我们的计算机a', 3));
输出结果为:a我们
功能
返回字符串s最左边n个字符组成的字符串。同函数LEFT。
功能
返回字符串s的字符长度。汉字算作一个字符,尾部空格不计数。
语法
LEN(s) RETURN INT
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(LEN('hi,你好 '));
输出结果为:5
功能
返回字符串s的字符长度。汉字算作一个字符,尾部空格计数。
语法
LENGTH(s) RETURN INT
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(LENGTH('hi,你好 '));
输出结果为:7
功能
返回字符串s的字节长度。
语法
LENGTHB(s) RETURN INT
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(LENGTHB('hi,你好 '));
输出结果为:10
功能
返回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
功能
将字符串s中的所有大写字母改为小写。同函数LCASE。
功能
将字符串s1的左边填充上字符串s2指定的字符,将其拉伸至n个字节长度。默认填充空格。
语法
LPAD(s1, n[, s2]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s1 | VARCHAR | 字符串。 |
| n | INT | 拉伸长度。 |
| s2 | VARCHAR | 可选参数,填充字符串。 |
示例
DRS_SYS.PUT_LINE(LPAD('FX',19,'Teacher'));
输出结果为:TeacherTeacherTeaFX
功能
从字符串s1的左端开始删除字符串s2中的字符,直到遇到不在s2中的第一个字符。s2默认为空格。
语法
LTRIM(s1[, s2]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s1 | VARCHAR | 字符串。 |
| s2 | VARCHAR | 可选参数,字符串。 |
示例
DRS_SYS.PUT_LINE(LTRIM('xyyxxxXxyLAST WORD', 'xy'));
输出结果为:XxyLAST WORD
功能
返回字符串s的字节长度。同函数LENGTHB。
功能
从字符串s2的最左边开始查找,返回字符子串s1首次出现的位置。如果未找到返回0。以字节为单位计算。
语法
POSITION(s1, s2) RETURN INT
| 参数名 | 类型 | 说明 |
|---|---|---|
| s1 | VARCHAR | 子字符串。 |
| s2 | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(POSITION('数', '达梦数据库'));
输出结果为:5
功能
返回将字符串按指定次数重复形成的字符串。
语法
REPEAT(s, n) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
| n | INT | 重复次数。 |
示例
DRS_SYS.PUT_LINE(REPEAT('Hello',3));
输出结果为:HelloHelloHello
功能
返回将字符串按指定次数重复形成的字符串。同函数REPEAT。
功能
将字符串s1中所有出现的字符串s2都替换成字符串s3。s3省略则相当于直接删除。
语法
REPLACE(s1, s2[, s3]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s1 | VARCHAR | 字符串。 |
| s2 | VARCHAR | 查找字符串。 |
| s3 | VARCHAR | 可选参数,替换字符串。 |
示例
DRS_SYS.PUT_LINE(REPLACE('我们的计算机 我们的计算机', '我们', '他们'));
输出结果为:他们的计算机 他们的计算机
功能
返回将字符串按指定次数重复形成的字符串。同函数REPEAT。
功能
返回字符串s的字符顺序反转后形成的字符串。
语法
REVERSE(s) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(REVERSE('我们的计算机'));
输出结果为:机算计的们我
功能
返回字符串s最右边n个字符组成的字符串。
语法
RIGHT(s, n) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
| n | INT | 长度。 |
示例
DRS_SYS.PUT_LINE(RIGHT('我们的计算机', 3));
输出结果为:计算机
功能
返回字符串s最右边n个字符组成的字符串。同函数RIGHT。
功能
将字符串s1的右边填充上字符串s2指定的字符,将其拉伸至n个字节长度。默认填充空格。
语法
RPAD(s1, n[, s2]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s1 | VARCHAR | 字符串。 |
| n | INT | 拉伸长度。 |
| s2 | VARCHAR | 可选参数,填充字符串。 |
示例
DRS_SYS.PUT_LINE(RPAD('计算机', 8, '我们的'));
输出结果为:计算机我
功能
从字符串s1的右端开始删除字符串s2中的字符,直到遇到不在s2中的第一个字符。s2默认为空格。
语法
RTRIM(s1[, s2]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s1 | VARCHAR | 字符串。 |
| s2 | VARCHAR | 可选参数,字符串。 |
示例
DRS_SYS.PUT_LINE(RTRIM('我们的A计算机我','我计机'));
输出结果为:我们的A计算
功能
返回一个表示字符串发音的字符串。由四个字符构成,第一个为英文字符,后三个为数字。
语法
SOUNDEX(s) RETURN VARCHAR(4)
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(SOUNDEX('Hello'));
输出结果为:H400
功能
返回一个包含n个空格的字符串。
语法
SPACE(n) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| n | INT | 长度。 |
功能
把字符串按指定位置上的字符值减1。默认最后一个字符。以字节为单位计算。
语法
STRPOSDEC(s[, n]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
| n | INT | 可选参数,字节位置。 |
示例
DRS_SYS.PUT_LINE(STRPOSDEC('hello',3));
输出结果为:heklo
功能
把字符串按指定位置上的字符值加1。默认最后一个字符。以字节为单位计算。
语法
STRPOSINC(s[, n]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
| n | INT | 可选参数,字节位置。 |
示例
DRS_SYS.PUT_LINE(STRPOSINC('我hello',3));
输出结果为:我gello
功能
删除在字符串s1中位置begin开始的n个字符,再把s2插入到该位置。一个汉字作为一个字符计算。同函数INS。
功能
返回s中从字符位置m开始的n个字符长度的字符串。若m为负数,则字符位置是从右边开始计算的。如果不指定n将返回剩余子串。
语法
SUBSTR(s[, m[, n]]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
| m | INT | 可选参数,字符位置。 |
| n | INT | 可选参数,字符长度。 |
示例
DRS_SYS.PUT_LINE(SUBSTR('我们的计算机',3,4));
输出结果为:的计算机
功能
返回s中从字符位置m开始的n个字符长度的字符串。若m为负数,则字符位置是从右边开始计算的。如果不指定n将返回剩余子串。同函数SUBSTR。
功能
返回s中从字节位置m开始的n个字节长度的字符串。若m为负数,则字符位置是从右边开始计算的。如果不指定n将返回剩余子串。
语法
SUBSTRB(s[, m[, n]]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
| m | INT | 可选参数,字节位置。 |
| n | INT | 可选参数,字节长度。 |
示例
DRS_SYS.PUT_LINE(SUBSTRB('达梦数据库有限公司',4,10));
输出结果为:" 数据库有 "
功能
将字符串s1中所有出现的字符串s2都替换成字符串s3,s3省略则直接删除。与REPLACE区别在于,替换的字符串s3不会超过s2的大小,超过的部分会忽略。
语法
TRANSLATE(s1, s2[, s3]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s1 | VARCHAR | 字符串。 |
| s2 | VARCHAR | 查找字符串。 |
| s3 | VARCHAR | 可选参数,替换字符串。 |
示例
DRS_SYS.PUT_LINE(TRANSLATE('我们的计算机', '我们的', '大大世界');
输出结果为:大大世计算机
功能
从字符串s1的两端开始删除字符串s2中的字符,直到遇到不在s2中的第一个字符。s2默认为空格。
语法
TRIM(s1[, s2]) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s1 | VARCHAR | 字符串。 |
| s2 | VARCHAR | 可选参数,字符串。 |
示例
DRS_SYS.PUT_LINE(TRIM('我们的A计算机我','我计机'));
输出结果为:们的A计算
功能
将字符串s中的小写字母转换为大写。
语法
UCASE(s) RETURN VARCHAR
| 参数名 | 类型 | 说明 |
|---|---|---|
| s | VARCHAR | 字符串。 |
示例
DRS_SYS.PUT_LINE(UCASE('hello world'));
输出结果为:HELLO WORLD
功能
将字符串s中的小写字母转换为大写,同函数UCASE。
文章
阅读量
获赞
