CREATE FUNCTION CURRVAL(a_seq_name VARCHAR(55)) RETURNS bigint(20)
BEGIN
DECLARE seq_val BIGINT;
SET seq_val = -1;
IF EXISTS(SELECT 1
FROM TFM_SEQUENCES holdlock
WHERE SEQUENCE_NAME = a_seq_name)
THEN
SELECT CURRENT_VALUE
INTO seq_val
FROM TFM_SEQUENCES
WHERE SEQUENCE_NAME = a_seq_name;
ELSE
SIGNAL SQLSTATE ‘42000’
SET MESSAGE_TEXT ='error:1001,Query was empty,sequence name not found ';
END IF;
RETURN seq_val;
END
报错:执行以下 SQL 失败
CREATE FUNCTION CURRVAL(a_seq_name VARCHAR(55)) RETURNS bigint(20) BEGIN DECLARE seq_val BIGINT
失败原因:
(conn=3221499471) You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near '(a_seq_name VARCHAR(55)) RETURNS bigint(20)
SQL 执行被取消
SET seq_val = -1
取消原因
执行 SQL 取消,取消详情:Pre-sql execution error
SQL 执行被取消
IF EXISTS(SELECT 1 FROM TFM_SEQUENCES holdlock WHERE SEQUENCE_NAME = a_seq_name) THEN SELECT CURRENT_VALUE INTO seq_val FROM TFM_SEQUENCES WHERE SEQUENCE_NAME = a_seq_name
取消原因
执行 SQL 取消,取消详情:Pre-sql execution error
SQL 执行被取消
ELSE SIGNAL SQLSTATE ‘42000’ SET MESSAGE_TEXT ='error:1001,Query was empty,sequence name not found ’
取消原因
执行 SQL 取消,取消详情:Pre-sql execution error
SQL 执行被取消
END IF
取消原因
执行 SQL 取消,取消详情:Pre-sql execution error
SQL 执行被取消
RETURN seq_val
取消原因
执行 SQL 取消,取消详情:Pre-sql execution error
SQL 执行被取消
END
取消原因
执行 SQL 取消,取消详情:Pre-sql execution error