用户定义变量
使用DEFINE定义了的变量(或许我们可以叫其定义常量,和C/C++中的DEFINE非常类似),可以使用&引用声明的变量。其作用范围或生命周期通常是整个会话。如果定义了变量后,需要清除变量,则可以使用UNDEFINE清除变量,使用DEFINE VARIABLE来查看变量
SQL> DEFINE NUM=2; --定义变量
SQL> DEFINE NUM --查看变量
DEFINE NUM = "2" (CHAR)
SQL> SELECT 2+&NUM FROM DUAL; --引用变量
old 1: SELECT 2+&NUM FROM DUAL
new 1: SELECT 2+2 FROM DUAL
2+2
----------
4
SQL> UNDEFINE NUM; --清除变量
SQL> SELECT 2+&NUM FROM DUAL; --清除变量后,&NUM变成替换变量了。需要输入值
Enter value for num:
小知识点:查看当前会话下,SQL*Plus下定义的变量
SQL> define
DEFINE _DATE = "11-SEP-14" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "epps" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000400" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Release 10.2.0.4.0 - Production" (CHAR)
DEFINE _O_RELEASE = "1002000400" (CHAR)
VARIABLE变量和DEFINE变量不同的是其需要指定变量类型,类似编程语言中的强类型和弱类型变量。前者用于绑定变量,后者是用于&或&&进行变量替换
SQL> VAR NUM NUMBER;
SQL> EXEC :NUM :=10;
PL/SQL procedure successfully completed.
SQL> PRINT NUM;
NUM
----------
10
DECLARE定义变量则一般用于PL/SQL中。一般大家也用得比较多。在此不做说明。
原载于:
参考资料:
阅读(1115) | 评论(0) | 转发(0) |