CREATE FUNCTION does_not_work(
a IN NUMBER,
b IN NUMBER
) RETURN NUMBER
IS
BEGIN
IF a < 2 THEN
a := 2;
END IF;
RETURN GREATEST( a, b );
END;
/
(注:以下为 IN 关键字可选,默认参数方向;如果声明签名时没有 IN 关键词。) 给予:
ORA-24344: success with compilation error
如果您查看错误:
SELECT * FROM USER_ERRORS;
输出: nametypesequencelinepositiontextattributemessage\u numberdoes\u not workfunction185pls-00363:表达式“a”不能用作赋值目标r363Does\u not\u workfunction285pl/sql:语句ignorederror0 这说明你不能使用 IN 参数作为赋值目标。
1条答案
按热度按时间7eumitmz1#
这是没有必要的,因为你不能重新定义一个
IN
参数。例如:(注:以下为
IN
关键字可选,默认参数方向;如果声明签名时没有IN
关键词。)给予:
如果您查看错误:
输出:
nametypesequencelinepositiontextattributemessage\u numberdoes\u not workfunction185pls-00363:表达式“a”不能用作赋值目标r363Does\u not\u workfunction285pl/sql:语句ignorederror0
这说明你不能使用
IN
参数作为赋值目标。