PL/SQL常量和文字 - PL/SQL教程

常量一旦声明值,在程序中不会改变。常量声明指定名称,数据类型和值,并为它分配存储空间。声明还可以加以NOT NULL约束。

声明一个常量

常量使用CONSTANT关键字声明。它需要一个初始值,并且不允许被改变该值。例如:

PI CONSTANT NUMBER := 3.141592654;
DECLARE
   -- constant declaration
   pi constant number := 3.141592654;
   -- other declarations
   radius number(5,2); 
   dia number(5,2); 
   circumference number(7, 2);
   area number (10, 2);
BEGIN 
   -- processing
   radius := 9.5; 
   dia := radius * 2; 
   circumference := 2.0 * pi * radius;
   area := pi * radius * radius;
   -- output
   dbms_output.put_line('Radius: ' || radius);
   dbms_output.put_line('Diameter: ' || dia);
   dbms_output.put_line('Circumference: ' || circumference);
   dbms_output.put_line('Area: ' || area);
END;
/

当上述代码在SQL提示符执行时,它产生了以下结果:

Radius: 9.5
Diameter: 19
Circumference: 59.69
Area: 283.53

Pl/SQL procedure successfully completed.

PL/SQL文字

文字是一个明确的数字,字符,字符串或布尔值不是由标识符表示。例如,TRUE,786,NULL'yiibai' 的类型分别是布尔,数字或字符串的文字。 PL/SQL的文字是区分大小写的。 PL/SQL支持以下几种文字:

  • 数字文本

  • 字符字面量

  • 字符串字面量

  • 布尔文字

  • 日期和时间文字

下表提供了这些类型文字值的例子。

字面值类型 示例:
数字文本 050 78 -14 0 +32767 6.6667 0.0 -12.0 3.14159 +7800.00 6E5 1.0E-8 3.14159e0 -1E38 -9.5e-3
字符字面量 'A' '%' '9' ' ' 'z' '('
字符串字面量 'Hello, world!' 'Yiibai Yiibai' '19-NOV-12'
布尔文字 TRUE, FALSE 以及 NULL.
日期和时间文字 DATE '1978-12-25'; TIMESTAMP '2012-10-29 12:01:01';

嵌入单引号字符串文本中,将两个单引号相邻,如下图所示:

DECLARE
   message  varchar2(30):= ''That''s yiibai.com!'';
BEGIN
   dbms_output.put_line(message);
END;
/

当上述代码在SQL提示符执行时,它产生了以下结果:

That's yiibai.com!

PL/SQL procedure successfully completed.