變量和常量
變量存放在內存中以獲得值
聲明變量
變量一般都在PL/SQL塊的聲明部分聲明
聲明變量的語法如下
Variable_name [CONSTANT] databyte [NOT NULL][:=|DEFAULT expression]
注意:可以在聲明變量的同時給變量強制性的加上NOT NULL約束條件
給變量賦值
給變量賦值有兩種方式
X:=
Y=Y+(X*
SELECT SUM(SALARY)
INTO TOTAL_SALARY
FROM EMPLOYEE
WHERE DEPT=
常量
常量與變量相似
ZERO_VALUE CONSTANT NUMBER:=
這個語句定了一個名叫ZERO_VALUE
標量(scalar)數據類型
標量(scalar)數據類型沒有內部組件
表
表
Datatype Range Subtypes description
BINARY_INTEGER
NATURAL
NPOSITIVE
POSITIVEN
SIGNTYPE
用於存儲單字節整數
要求存儲長度低於NUMBER值
用於限制范圍的子類型(SUBTYPE):
NATURAL:用於非負數
POSITIVE:只用於正數
NATURALN:只用於非負數和非NULL值
POSITIVEN:只用於正數
SIGNTYPE:只有值:
NUMBER
DECIMAL
DOUBLE
PRECISION
FLOAT
INTEGERIC
INT
NUMERIC
REAL
SMALLINT 存儲數字值
number[( [
缺省的精度是
PLS_INTEGER
表
datatype rang subtype description
CHAR 最大長度
LONG 最大長度
RAW 最大長度
LONGRAW 最大長度
ROWID
VARCHAR
表
datatype range description
BOOLEAN TRUE/FALSE 存儲邏輯值TRUE或FALSE
DATE
LOB數據類型
LOB(大對象
操作符
與其他程序設計語言相同
算術操作符如表
operator operation
+ 加
/ 除
* 乘
** 乘方
關系操作符主要用於條件判斷語句或用於where子串中
operator operation
< 小於操作符
<= 小於或等於操作符
> 大於操作符
>= 大於或等於操作符
= 等於操作符
!= 不等於操作符
<> 不等於操作符
:= 賦值操作符
表
operator operation
IS NULL 如果操作數為NULL返回TRUE
LIKE 比較字符串值
BETWEEN 驗證值是否在范圍之內
IN 驗證操作數在設定的一系列值中
表
operator operation
AND 兩個條件都必須滿足
OR 只要滿足兩個條件中的一個
NOT 取反
執行部分
執行部分包含了所有的語句和 表達式
所有的SQL數據操作語句都可以用於執行部分
執行一個PL/SQL塊
SQL*PLUS中匿名的PL/SQL塊的執行是在PL/SQL塊後輸入/來執行
declare
v_comm_percent constant number:=
begin
update emp
set comm=sal*v_comm_percent
where deptno=
end
SQL> /
PL/SQL procedure successfully completed
SQL>
命名的程序與匿名程序的執行不同
create or replace procedure update_commission
(v_dept in number
begin
update emp
set comm=sal*v_percent
where deptno=v_dept;
end
SQL>/
Procedure created
SQL>execute update_commission(
PL/SQL procedure successfully completed
SQL>
如果在另一個命名程序塊或匿名程序塊中執行這個程序
declare
v_dept number;
begin
select a
into v_dept
from emp a
where job=
update_commission(v_dept);
end
SQL>/
PL/SQL procedure successfully completed
SQL>
From:http://tw.wingwit.com/Article/program/Oracle/201311/16606.html