【发布时间】:2019-03-23 02:32:29
【问题描述】:
我是 postgreSQL 数据库的新手,你能解释一下我为什么会出现语法错误吗?我在文档中找不到任何答案 docs
CREATE OR REPLACE FUNCTION validation(string_to_match varchar [], pattern
varchar , validation_type varchar) RETURNS boolean AS $$
DECLARE a_length ALIAS FOR $1;
DECLARE result_validation ALIAS FOR $2;
BEGIN
CASE validation_type
WHEN 'login' THEN array_length (string_to_match , 1) INTO $1 RAISE NOTICE
'Array length is %', $1;
WHEN 'register' THEN array_length(string_to_match,1) INTO $1 RAISE NOTICE
'Array length is %', $1;
WHEN 'contact' THEN array_length(string_to_match,1) INTO $1 RAISE NOTICE
'Array length is %', $1;
END CASE;
END;
$$ lANGUAGE plpgsql;
错误:“array_length”处或附近的语法错误 第 7 行:WHEN '登录' THEN array_length (string_to_match , 1) INTO ... ^ SQL 状态:42601 字数:258
【问题讨论】:
-
尝试将其写为
when validation_type = 'login' ...when validation_type = 'register' ...etc我不知道为什么,但我以前遇到过这个错误,并且已经解决了。 -
INTO $1在您放置它的地方毫无意义。你到底希望它做什么?您还缺少return声明。您必须向我们解释该功能应该做什么。据我所知,CASE 完全没有必要,因为您只需在所有情况下输出(相同)数组长度
标签: postgresql