【DM版本】:v8
【操作系统】:
【CPU】:
【问题描述】*:
mysql迁移至dm的存储过程如下:
CREATE OR REPLACE
FUNCTION "FSP"."NEXT_VAL"
(
seqname VARCHAR)
RETURN VARCHAR
AS
seq_rules VARCHAR;
seq_length INT;
seq_max BIGINT;
seq_date_fmt VARCHAR;
max_id_length INT;
max_id VARCHAR;
len INT;
BEGIN
UPDATE seq SET max = max + next WHERE name = seqname;
SELECT
rules ,
length,
max ,
date_fmt
INTO
seq_rules ,
seq_length,
seq_max ,
seq_date_fmt
FROM
seq
WHERE
name = seqname;
SET max_id = seq_max;
SET max_id_length = CHARACTER_LENGTH(max_id);
SET len = seq_length - max_id_length;
--长度不够补0
WHILE len > 0
LOOP
SET max_id = CONCAT(0, max_id);
SET len = len - 1;
END LOOP;
--替换规则
IF seq_rules IS NOT NULL AND INSTR(seq_rules, '###max_id###') > 0 THEN
SET seq_rules = REPLACE(seq_rules, '###max_id###', max_id);
SET max_id = seq_rules;
END IF;
IF seq_rules IS NOT NULL AND INSTR(seq_rules, '###date###') > 0 AND seq_date_fmt IS NOT NULL THEN
SET max_id = REPLACE(seq_rules, '###date###', DATE_FORMAT(NOW(), seq_date_fmt));
END IF;
return max_id;
END;
mysql通过SELECT next_val(‘SH22’)获取返回值,那dm如何获取返回值?
支持这种写法
