这些PL/SQL变量初始化是否相同?

Tom*_*sky 2 oracle plsql default-value variable-assignment

所以我知道我可以使用以下任一方法在PL/SQL中初始化变量:

  • 该DEFAULT关键字
  • 该:=赋值运算符

例如:

  • counter binary_integer DEFAULT 15;
  • counter binary_integer := 15;

这两种方法是否完全等同于PL/SQL引擎,还是有任何细微的差别?

Luc*_*c M 5

是的,他们是等同的.

来自Oracle文档

您可以使用关键字DEFAULT而不是赋值运算符来初始化变量.您还可以使用DEFAULT初始化用户定义记录中的子程序参数,游标参数和字段.

对具有典型值的变量使用DEFAULT.对没有典型值的变量(例如计数器和累加器)使用赋值运算符.

例2-8使用DEFAULT关键字为变量分配默认值

SQL> DECLARE
  2    blood_type CHAR DEFAULT 'O';         -- Same as blood_type CHAR := 'O';
  3  
  4    hours_worked    INTEGER DEFAULT 40;  -- Typical value
  5    employee_count  INTEGER := 0;        -- No typical value
  6  
  7  BEGIN
  8    NULL;
  9  END;
 10  /

PL/SQL procedure successfully completed.

SQL>
Run Code Online (Sandbox Code Playgroud)

  • 我从来没有使用`DEFAULT`,因为`:=`少了5个字符.我可以看到它们的意思是"典型"与"不典型",即意图是使用"DEFAULT"意味着自我记录的事情说"这是这个变量的正常值,但是它可能被覆盖",而`:=`表示"这是这个变量的起始值,但预计会改变,可能多次(如循环中)". (5认同)