oracle—sql中是否可以有常量函数参数?

pxiryf3j  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(323)

有没有可能在sql中使用常量函数参数来确保以后不会更改这些值?
像这样的事情是行不通的:

function my_func(
        first_param  constant varchar2
      , second_param constant varchar2
      ) return varchar2
   is
... -- Rest
7eumitmz

7eumitmz1#

这是没有必要的,因为你不能重新定义一个 IN 参数。例如:

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 参数作为赋值目标。

相关问题