1. 一些常见的运算符
| 运算符 |
意义 |
| = |
等于 |
| <> , != , ~= , ^= |
不等于 |
| < |
小于 |
| > |
大于 |
| <= |
小于或等于 |
| >= |
大于或等于 |
| + |
加号 |
| - |
减号 |
| * |
乘号 |
| / |
除号 |
| := |
赋值号 |
| => |
关系号 |
| .. |
范围运算 |
| || |
字符连接符 |
| IS NULL |
是空值 |
| BETWEEN AND |
介于两者之间 |
| IN |
在一列值中间 |
| AND |
逻辑与 |
| OR |
逻辑或 |
| NOT |
取返,如IS NOT NULL, NOT IN |
2.变量赋值
在PL/SQL编程中,变量赋值是一个值得注意的地方,它的语法如下: * 变量赋值
variable := expression ;
* 声明同时为变量赋值 variable variable_Type:= expression ;
3.变量计算 空值加数字仍是空值:NULL + < 数字> = NULL 空值加(连接)字符,结果为字符:NULL || <字符串> = < 字符串> 布尔值只有TRUE, FALSE及 NULL 三个值 数据库赋值是通过 SELECT语句来完成的,每次执行 SELECT语句就赋值一次,一般要求被赋值的变量与SELECT中的列名要一一对应。如: DECLARE
emp_id emp.empno%TYPE :=7788;
emp_name emp.ename%TYPE;
wages emp.sal%TYPE;
BEGIN
SELECT ename, NVL(sal,0) + NVL(comm,0) INTO emp_name, wages
FROM emp WHERE empno = emp_id;
DBMS_OUTPUT.PUT_LINE(emp_name||'----'||to_char(wages));
END;
提示:不能将SELECT语句中的列赋值给布尔变量。 4.数据类型的转换 1. CHAR 转换为 NUMBER: TO_NUMBER('100.0') 2.NUMBER 转换为CHAR: TO_CHAR('123.45') 3. 字符转换为日期: v_date := TO_DATE('2001.07.03','yyyy.mm.dd'); 4.日期转换为字符 v_to_day := TO_CHAR(SYSDATE, 'yyyy.mm.dd hh24:mi:ss') ; -- Created on 2015/6/12 by LYH
declare
str char(10):='100.0';
i int:=421;
total int;
begin
total:=TO_NUMBER(str)+i;
Dbms_Output.put_line(TO_CHAR(total));
end;
5.变量作用范围及可见性 在PL/SQL编程中,如果在变量的定义上没有做到统一的话,可能会隐藏一些危险的错误,这样的原因主要是变量的作用范围所致。变量的作用域是指变量的有效作用范围,与其它高级语言类似,PL/SQL的变量作用范围特点是: 变量的作用范围是在你所引用的程序单元(块、子程序、包)内。即从声明变量开始到该块的结束。 一个变量(标识)只能在你所引用的块内是可见的。 当一个变量超出了作用范围,PL/SQL引擎就释放用来存放该变量的空间(因为它可能不用了)。 在子块中重新定义该变量后,它的作用仅在该块内。 一个例子 -- Created on 2015/6/15 by LYH
declare
Emess char(4):='李四';
begin
declare
v1 number(10);
begin
SELECT fage
INTO v1
from t_employee
where fname='Tom';
Dbms_Output.put_line(v1);
end;
declare
v1 number(10);
begin
SELECT fage
INTO v1
from t_employee
where fname='Jerry';
Dbms_Output.put_line(v1);
end;
end;
|