CREATE TABLE TEST(ID INT, STATUS VARCHAR(10));
INSERT INTO TEST VALUES(1, 'WARNING'),(1, 'ERROR');
CREATE OR REPLACE FUNCTION TEST()RETURNS VOID
AS
$$
DECLARE
NUM1 INT;
NUM2 INT;
BEGIN
SELECT ID INTO NUM1 FROM TEST WHERE STATUS = 'WARNING';
SELECT ID INTO NUM2 FROM TEST WHERE STATUS = 'ERROR';
IF NUM1 THEN
RAISE WARNING 'THIS IS A WARNING!';
END IF;
IF NUM2 THEN
RAISE EXCEPTION 'THIS IS A FUCKING ERROR!';
END IF;
END;
$$ LANGUAGE PLSQL;
TEST=# CALL TEST();
警告: THIS IS A WARNING!
错误: THIS IS A FUCKING ERROR!
背景: PL/SQL FUNCTION TEST() LINE 12 AT RAISE
PG 自定义函数报警、报错与赋值
最新推荐文章于 2023-12-06 15:18:19 发布