变量的赋值
整个PL/SQL程序执行过程中,常量的内容是固定不变的(类似于调料盒),
而变量的内容会有所变化(类似于碗盘),如何给变量赋予不同的值是在程序中需要考虑的一个问题。
1.以:=赋值
这是直接给变量赋值
DECLARE
--定义变量
V_DNO VARCHAR2(20);
BEGIN
--直接给变量赋值
V_DNO:='HELLO WARLD!';
--将变量打印
DBMS_OUTPUT.PUT_LINE(V_DNO);
END;
2.通过SELECT VALUE INTO VAR_NAME 赋值
这种方法是将查询到的值赋予变量
DECLARE
--定义变量
V_DNO VARCHAR2(25);
BEGIN
--将DEPT表中10号部门的名称查询出来赋给变量
SELECT DNAME INTO V_DNO FROM DEPT WHERE DEPTNO=10;
--打印变量
DBMS_OUTPUT.PUT_LINE(V_DNO);
END;
3.通过EXECUTE IMMEDIATE V_SQL INTO V_NAME赋值
这种方法和前一种相似,是先执行一段SQL语句,再将SQL查询的结果赋给变量
DECLARE
--定义一个变量来存放SQL语句
V_SQL VARCHAR2(100);
--再定义一个变量来存放SQL执行时所得的数据
V_NAME VARCHAR2(20);
BEGIN
--编写动态SQL(给变量赋一段SQL,就是动态SQL)
--查询DEPT表中10号部门的名称
V_SQL:='SELECT DNAME FROM DEPT WHERE DEPTNO=10';
--执行动态SQL,并将所得的值赋给变量
EXECUTE IMMEDIATE V_SQL INTO V_NAME;
--打印变量值
DBMS_OUTPUT.PUT_LINE(V_NAME);
END;
注:以上是关于变量赋值的三种方法,都是很简单的。但复杂的语句都是无数简单语句结合在一块的,只要将简单的理解运用好,自然也就能写复杂的。